javascript
060_JavaScript作用域
1. 作用域指的是您有權(quán)訪問的變量(對象和函數(shù)也是變量)集合。
2. JavaScript函數(shù)作用域
2.1. 在JavaScript中有兩種作用域類型:
- 局部作用域
- 全局作用域
2.2. JavaScript擁有函數(shù)作用域: 每個函數(shù)創(chuàng)建一個新的作用域。事實上代碼塊{}也可以創(chuàng)建一個作用域, 只不過代碼塊一般用于函數(shù)。
2.3. 作用域決定了這些變量的可訪問性(可見性)。
2.4. 函數(shù)內(nèi)部定義的變量在函數(shù)外部是不可訪問的(不可見的)。
3. 局部變量
3.1. 在JavaScript函數(shù)中聲明的變量, 會成為函數(shù)的局部變量。
3.2. 局部變量只能在函數(shù)內(nèi)訪問。
3.3. 由于局部變量只能被其函數(shù)識別, 因此可以在不同函數(shù)中使用相同名稱的變量。
3.4. 局部變量在函數(shù)開始時創(chuàng)建, 在函數(shù)完成時被刪除。
3.5. 實例
// 此處的代碼不能使用carNamefunction myFunction() {var carName = "Volvo";// 此處的代碼可以使用carName }4. 全局變量
4.1. 函數(shù)之外聲明的變量, 會成為全局變量。
4.2. 全局變量的作用域是全局的: 網(wǎng)頁的所有腳本和函數(shù)都能夠訪問它。
4.3. 實例
var carName = "porsche";// 此處的代碼能夠使用carName變量function myFunction() {// 此處的代碼也能夠使用carName變量 }5. 自動全局
5.1. 如果您為尚未聲明的變量賦值, 此變量會自動成為全局變量。
5.2. 這段代碼將聲明一個全局變量carName, 即使在函數(shù)內(nèi)進(jìn)行了賦值。
myFunction();// 此處的代碼能夠使用carName變量function myFunction() {carName = "porsche"; }5.3. 在"嚴(yán)格模式"中不會自動創(chuàng)建全局變量。所有現(xiàn)代瀏覽器都支持以"嚴(yán)格模式"運行JavaScript。
6. 全局對象
6.1. 在web瀏覽器中, 全局對象就是瀏覽器對象(window)。
6.2. 所有全局變量均屬于window對象。
6.3. 如果一個函數(shù)不是JavaScript對象的方法, 那么它屬于window對象的函數(shù)。
7. JavaScript變量的有效期
7.1. JavaScript變量的有效期始于其被創(chuàng)建時。
7.2. 局部變量會在函數(shù)完成時被刪除。
7.3. 全局變量會在您關(guān)閉頁面是被刪除。
總結(jié)
以上是生活随笔為你收集整理的060_JavaScript作用域的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 058_JavaScript函数argu
- 下一篇: 061_JavaScript闭包