最近在看《你不知道的js》書中講到 js的詞法作用域。通過網上查找整理如下:
作用域:
管理引擎如何在當前作用域以及嵌套的子作用域中根據標識符名稱進行變量查找。
詞法作用域
詞法作用域是由你在寫代碼時將變量和塊作用域寫在哪裏來決定的,因此當詞法分析器處理代碼時會保持作用域不變。
注意點:
無論函數在哪裏被調用,也無論它如何被調用,它的詞法作用域都只由函數被聲明時所處的位置決定。
var a=1 ; function getValue(){ console.log(a); } function getValue1(){ var a=2; getValue(); } getValue1(); //輸出 1
局部變量申明提升(轉)
var x = "globol value"; var getValue = function(){ alert(x); //彈出"undefined" var x = "local value"; alert(x); //彈出"local value"; } getValue();