摘要:代碼自上而下執(zhí)行,但是在代碼執(zhí)行前,會首先進行詞法分析,所以事實上,運行要分為詞法分析和執(zhí)行兩個階段。分析函數(shù)聲明如如果上沒有屬性,則把函數(shù)賦給屬性如果上有屬性,則會直接覆蓋,把函數(shù)賦給屬性
JavaScript代碼自上而下執(zhí)行,但是在js代碼執(zhí)行前,會首先進行詞法分析,所以事實上,js運行要分為詞法分析和執(zhí)行兩個階段。
詞法分析
詞法分析主要分為3步:
第1步:分析形參
第2步:分析變量聲明
第3步:分析函數(shù)聲明
如果存在函數(shù)嵌套,則從外往內進行詞法分析
具體步驟:
0、在函數(shù)執(zhí)行的一瞬間,生產(chǎn) Active Object(活動對象)
1.1 函數(shù)聲明的形參,形成AO的屬性,默認值是undefined,
1.2 接收形參,給剛剛形成AO的屬性的形參賦值
2.1 如果AO上還沒有age屬性,則給AO添加age屬性,默認值是undefined
2.2 如果AO上已經(jīng)有age屬性,則不做任何操作。
3.1 如果AO上沒有foot屬性,則把函數(shù)賦給AO.foot屬性
3.2 如果AO上有foot屬性,則會直接覆蓋,把函數(shù)賦給AO.foot屬性
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85013.html
摘要:先說下這個老話題連續(xù)賦值例結果是什么這句簡單,而這句呢答案是,變成了全局變量了這是實際執(zhí)行順序未使用聲明,所以變全局變量了例很早以前的面試題目了,相信很多人知道答案,考點詞法分析執(zhí)行順序運算符優(yōu)先級等這是我理解的實際執(zhí)行順序我是這么猜想的自 先說下這個老話題:連續(xù)賦值 例1: function a(){ var o1 = o2 = 5; } a(); console.l...
摘要:一般的程序,是無法直接執(zhí)行的,因為只能識別機器指令。所以要想執(zhí)行一個程序,首先要將高級語言編寫的程序翻譯為匯編代碼,再將匯編代碼翻譯為機器指令,這樣才能識別并執(zhí)行。 編譯器 編譯器是一個程序,作用是將一門語言翻譯成另一門語言。 一般的程序,CPU 是無法直接執(zhí)行的,因為 CPU 只能識別機器指令。所以要想執(zhí)行一個程序,首先要將高級語言編寫的程序翻譯為匯編代碼,再將匯編代碼翻譯為機器指令...
摘要:引擎會在代碼執(zhí)行前進行詞法分析,所以事實上,運行分為此法分析和執(zhí)行兩個階段。詞法作用域所謂詞法作用域是說,其作用域為在定義時詞法分析時就確定下來的,而并非在執(zhí)行時確定。 先來看個常見的面試題如下: var a = 10; function test(){ alert(a); //undefined var a = 20; alert(a); //20 } te...
摘要:引擎會在代碼執(zhí)行前進行詞法分析,所以事實上,運行分為此法分析和執(zhí)行兩個階段。詞法作用域所謂詞法作用域是說,其作用域為在定義時詞法分析時就確定下來的,而并非在執(zhí)行時確定。 先來看個常見的面試題如下: var a = 10; function test(){ alert(a); //undefined var a = 20; alert(a); //20 } te...
閱讀 1631·2021-10-27 14:13
閱讀 1868·2021-10-11 10:59
閱讀 3367·2021-09-24 10:26
閱讀 1925·2019-08-30 12:48
閱讀 3041·2019-08-30 12:46
閱讀 2033·2019-08-30 11:16
閱讀 1414·2019-08-30 10:48
閱讀 2740·2019-08-29 16:54