今天做了一份公司的筆試題目,把js中變量提升的知識寫下來。
var num = 1;
function test(){
console.log(num);
var num = 2;
console.log(num);
}
test();
輸出結果爲undefined 和 2.
test1();
test2();
function test1(){
alert(1);
}
var test2 = function(){
alert(2);
}
上面代碼使用聲明式和字面量兩種方式創建函數。
這裏涉及到JavaScript中變量提升和函數提升的知識。
在js中,每一個執行環境中的變量聲明都會提升到該執行環境的最頂端。
對於函數,只有函數聲明式也就是test1()可以進行函數提升被調用,但test2()不行。