pretty code

2018年10月31日 星期三

Javascript variable hoisting

以前只是大概知道
並沒有認真搞懂

使用 var 宣告的變數 scope
是在最接近它的 function 裡

故在 a 處,因為 variable hoisting 的關係
x 變數是存在的,但是仍未賦值
故印出來的結果是 undefined

假設我們沒有宣告 var x = 2
則 a 處就會觸發 "ReferenceError: x is not defined"
function foo() {
    console.log(x);      // a

    var x = 2;

    console.log(x);
}

foo();

沒有留言: