JavaScript 的作用域定义了变量和函数的可访问性范围。作用域可以分为全局作用域和局部作用域。在 JavaScript 中,作用域是通过函数来定义的。
全局作用域
全局作用域是指在代码的任何地方都可以访问的作用域。在全局作用域中定义的变量和函数可以在整个代码中被访问。在浏览器中,全局作用域是 window 对象。
示例代码:
var globalVar = 'I am a global variable';
function globalFunction() {
console.log('I am a global function');
}
console.log(globalVar); // 输出 'I am a global variable'
globalFunction(); // 输出 'I am a global function'局部作用域
局部作用域是指在函数内部定义的变量和函数只能在该函数内部访问。在函数外部无法访问函数内部的变量和函数。
示例代码:
// www.javascriptcn.com code example
function localScope() {
var localVar = 'I am a local variable';
function localFunction() {
console.log('I am a local function');
}
console.log(localVar); // 输出 'I am a local variable'
localFunction(); // 输出 'I am a local function'
}
localScope();
console.log(localVar); // 报错,localVar is not defined
localFunction(); // 报错,localFunction is not defined在 JavaScript 中,变量的作用域是由函数决定的。当在函数内部定义一个变量时,该变量只能在该函数内部访问,外部无法访问。这种作用域的设计可以避免变量之间的冲突,提高代码的可维护性和可读性。