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 物件可以覆蓋全域性變數和函式。