變數存在的範圍就是變數的作用域。
全域性作用域
變數在程式中一直存在,所有地方都可以讀取。
區域性作用域
變數只在函式內部存在
函式外部宣告變數就是全域性變數
函式內部定義的變數外部無法讀取,顧稱 區域性變數
使用規則:
函式允許訪問函式外的變數
整個**結構中只有函式可以限定作用域
作用域規則首先使用提公升規則分析
如果當前作用域中有了該變數,就不再考慮外面的同名變數
函式內部會產生 「 變數提公升 」 現象,在函式內部使用 var 命令宣告的變數,不管在什麼位置,變數宣告都會被提公升到函式體的頭部。
下面乙個小例子:
//提公升前的**
function
foo(x)
}//提公升後的**
function
foo(x)
}
變數宣告提公升 Vs 函式宣告提公升
先看以下 1 var in window a in window console.log in window 2 var in window a in window console.log in window if a in window 3 var a var in window a in win...
JS變數宣告和函式宣告提公升
很多時候,在直覺上,我們都會認為js 在執行時都是自上而下一行一行執行的,但是實際上,有一種情況會導致這個假設是錯誤的。a 2 var a console.log a 按照傳統眼光,console.log a 輸出的應該是undefined,因為var a在a 2之後。但是,輸出的是2。再看第二段 ...
JS變數提公升,函式宣告提公升及變數作用域的理解
在一般情況下,js 都是自上而下執行的,對於同乙個變數,可以通過如下方式來修改 var a 1 a 2 console.log a 2 a function console.log a function console.log a var a 1 console.log b var b functi...