var a;
test('2')
function test(b)
先分析整個頁面,然後逐一執行。此時會產生go物件,global object物件。
go物件
1、將所有變數作為go的屬性,值均為undifined
2、將函式宣告也作為go的屬性,值為函式體。當函式宣告和變數名相同時,覆蓋第一步
執行函式時,產生ao物件,actived object物件。
1、將多有變數,形參作為ao的屬性,值均為undifined
2、實參的值賦給形參
3、將函式宣告作為ao的屬性,值為函式體,同樣若與變數相同則覆蓋
JavaScript預編譯(函式)
知識點預習 1 js檔案的執行三部曲 語法分析 預編譯 解釋執行。2 變數未經宣告就使用,系統會報錯。3 var aa 夫 子 變數的宣告和賦值,aa為變數名,夫 子 是變數值。var aa是變數的宣告,aa 夫 子 是變數賦值。4 函式宣告 function demo 函式表示式 var demo...
javascript的預編譯階段
1.變數與函式 在js中宣告乙個變數有let const var三種方式,函式有宣告函式和函式表示式兩種。2.預編譯階段做的事情 在預編譯階段,所有的var宣告的變數會被初始化為undefined,所有的宣告函式會用它的定義進行初始化,而const let宣告的變數則不會在預編譯階段執行初始化,函式...
javascript基礎 預編譯 this指向
預編譯發生在函式執行前一刻,可以拆分成一下幾步 1 生成activation object 即ao物件 執行期上下文 2 查詢形參和變數,並將其作為ao物件的屬性,值為undefined 3 將實參的值賦給形參 4 在函式體內查詢函式宣告,並將值賦予函式體 看看下面的例子 function fn a...