所以,我想在javascript中掌握範圍鏈的概念,因此我創建了下面的示例來檢查我是否正確。
注:我熟悉以下概念(執行上下文和詞法環境)。範圍鏈示例
例子:
function test(){
function test2(){
//This prints 2 as expected
console.log(a);
}
//This should print 1 but instead it prints undefined
console.log(a);
var a = 2;
test2();
}
var a = 1;
test();
舉例來說,如果我的評論如下:
//var a = 2;
然後在這兩種情況下的輸出爲1
因爲JavaScript變量懸掛進行治療。即使在執行之前,函數中的var a也是引用。函數內的'console.log(a)'和'test2'內的'a'指的是本地的'a'(*仍然是'undefined' *),而不是全局的'a'。 –
我知道他們被吊起來了。但是我從外部環境獲得的參考資料有哪些? – sterg