在 JavaScript 中曹铃,"作用域"(Scope)是定義變量、函數(shù)和對(duì)象可訪問(wèn)性的規(guī)則集合捧杉。它確定在代碼中的哪些部分可以訪問(wèn)或引用特定的變量陕见、函數(shù)或?qū)ο蟆?/p>
JavaScript 中有兩種主要類(lèi)型的作用域:
1:全局作用域(Global Scope):全局作用域是在代碼中沒(méi)有包裹在任何函數(shù)內(nèi)部的部分。在全局作用域中聲明的變量可以在代碼中的任何位置訪問(wèn)味抖。全局作用域中聲明的變量和函數(shù)在整個(gè)應(yīng)用程序中都是可見(jiàn)的评甜。
示例:
var globalVariable = 'I am a global variable';
function globalFunction() {
console.log('I am a global function');
}
console.log(globalVariable); // 輸出:I am a global variable
globalFunction(); // 輸出:I am a global function
2:局部作用域(Local Scope):局部作用域是在函數(shù)內(nèi)部創(chuàng)建的作用域。在局部作用域中聲明的變量只能在函數(shù)內(nèi)部訪問(wèn)仔涩。這意味著在函數(shù)外部是無(wú)法訪問(wèn)這些變量的蜕着。
示例:
function localFunction() {
var localVariable = 'I am a local variable';
console.log(localVariable);
}
localFunction(); // 輸出:I am a local variable
console.log(localVariable); // 拋出 ReferenceError: localVariable is not defined
作用域還涉及到一個(gè)重要的概念,即變量的"作用域鏈"(Scope Chain)红柱。當(dāng)在某個(gè)作用域中查找變量時(shí)承匣,如果當(dāng)前作用域沒(méi)有該變量,JavaScript 引擎會(huì)繼續(xù)向上查找锤悄,直到找到該變量或達(dá)到全局作用域韧骗。這個(gè)變量查找的路徑就是作用域鏈。