JavaScript 作用域


作用域是可訪問變數的集合。


JavaScript 作用域

在 JavaScript 中, 對象和函數同樣也是變數。

在 JavaScript 中, 作用域為可訪問變數,對象,函數的集合。

JavaScript 函數作用域: 作用域在函數內修改。


JavaScript 局部作用域

變數在函數內聲明,變數為局部作用域。

局部變數:只能在函數內部訪問。

實例

// 此處不能調用 carName 變數 function myFunction() { var carName = "Volvo"; // 函數內可調用 carName 變數 }

因為局部變數只作用於函數內,所以不同的函數可以使用相同名稱的變數。

局部變數在函數開始執行時創建,函數執行完後局部變數會自動銷毀。


JavaScript 全局變數

變數在函數外定義,即為全局變數。

全局變數有 全局作用域: 網頁中所有腳本和函數均可使用。 

實例

var carName = " Volvo"; // 此處可調用 carName 變數 function myFunction() { // 函數內可調用 carName 變數 }


如果變數在函數內沒有聲明(沒有使用 var 關鍵字),該變數為全局變數。

以下實例中 carName 在函數內,但是為全局變數。

實例

// 此處可調用 carName 變數 function myFunction() { carName = "Volvo"; // 此處可調用 carName 變數 }



JavaScript 變數生命週期

JavaScript 變數生命週期在它聲明時初始化。

局部變數在函數執行完畢後銷毀。

全局變數在頁面關閉後銷毀。


函數參數

函數參數只在函數內起作用,是局部變數。


HTML 中的全局變數

在 HTML 中, 全局變數是 window 對象: 所有數據變數都屬於 window 對象。

實例

//此處可使用 window.carName function myFunction() { carName = "Volvo"; }



你知道嗎?

Note 你的全局變數,或者函數,可以覆蓋 window 對象的變數或者函數。
局部變數,包括 window 對象可以覆蓋全局變數和函數。