JavaScript – var & let
發布日期:2023/04/14
瀏覽次數:127
當使用var
宣告變數時,如果在函數內宣告,則該變數的使用範圍是它所在的函數內;如果它在函數外宣告,那使用範圍則是整個全域範圍。這種作用域被稱為”函數作用域”或”全域作用域”。
在ES6(ECMAScript 2015)中,JavaScript引入了let
和const
關鍵字。當使用let
宣告變數時,其作用域僅限於它所在的代碼區塊,這種作用域被稱為”區塊作用域”。
*代碼區塊指的是一段被大括號框起的程式碼區塊。
以下是一個let
和var
作用域的範例:
function example() {
var x = 1;
let y = 2;
if (true) {
var x = 3;
let y = 4;
console.log(x); // 輸出 3
console.log(y); // 輸出 4
}
console.log(x); // 輸出 3
console.log(y); // 輸出 2
}
example();
在這個範例中,我們創建了一個名為example的函數。我們使用var宣告一個名為x的變數,並將其設置為1,並使用let宣告一個名為y的變數,並將其設置為2。然後,我們創建了一個if語句,其中我們使用var宣告一個名為x的變數,並將其設置為3。我們使用let宣告一個名為y的變數,並將其設置為4。在if語句的內部,我們輸出x和y的值,它們分別為3和4。然後,在if語句的外部,我們再次輸出x和y的值,此時它們分別為3和2。
這是因為在if語句內部,我們使用var宣告的變數x會將其值改為3,這會影響if語句外部的x的值。但是,由於let宣告的變數y具有區塊作用域,因此在if語句外部,y的值仍然是2,並且不會受到if語句內部y值的影響。
Like