JavaScript作用域是指程序中變量的可訪問范圍。JavaScript作用域分為全局作用域和局部作用域。全局作用域是指在程序的任何地方都可以訪問的變量,而局部作用域是指只能在特定范圍內訪問的變量。
全局作用域中定義的變量是所有函數和代碼塊都可以訪問的。例如:
// 全局作用域 var globalVar = "I am global."; function myFunction() { console.log(globalVar); } myFunction(); // 輸出 "I am global."
在這個例子中,globalVar是在全局作用域中定義的,所以無論在哪個函數或代碼塊中,它都可以被訪問。
局部作用域中定義的變量只能在特定范圍內訪問。例如:
function myFunction() { // 局部作用域 var localVar = "I am local."; console.log(localVar); } myFunction(); // 輸出 "I am local." console.log(localVar); // 報錯:localVar未定義
在這個例子中,localVar只能在myFunction函數的作用域中訪問,所以在函數外部訪問會報錯。
除了在函數中定義局部作用域,JavaScript還有一個塊級作用域。塊級作用域是指在花括號內定義的變量只能在花括號內訪問。例如:
function myFunction() { if (true) { // 塊級作用域 let blockVar = "I am block."; console.log(blockVar); } console.log(blockVar); // 報錯:blockVar未定義 } myFunction();
在這個例子中,blockVar只能在if語句塊的作用域中訪問,所以在if語句塊外部訪問會報錯。
在ES6之前,JavaScript只有全局作用域和函數作用域。ES6引入了塊級作用域,提供了更多的變量定義方式。
JavaScript作用域分為全局作用域和局部作用域兩類。全局作用域中定義的變量是所有函數和代碼塊都可以訪問的,而局部作用域中定義的變量只能在特定范圍內訪問。