JavaScript 作用域(Scope)简单汇总攻略
什么是作用域?
作用域是指在程序中定义变量的区域,它决定了变量的可见性和生命周期。JavaScript 中有全局作用域和局部作用域两种。
全局作用域
全局作用域是在整个程序中都可访问的作用域。在全局作用域中定义的变量可以在程序的任何地方被访问到。
示例代码:
var globalVariable = \"I am a global variable\";
function printGlobalVariable() {
console.log(globalVariable);
}
printGlobalVariable(); // 输出:I am a global variable
局部作用域
局部作用域是在函数内部定义的作用域,只能在函数内部访问到。在函数外部无法访问函数内部定义的变量。
示例代码:
function printLocalVariable() {
var localVariable = \"I am a local variable\";
console.log(localVariable);
}
printLocalVariable(); // 输出:I am a local variable
console.log(localVariable); // 报错:localVariable is not defined
块级作用域
在 ES6(ECMAScript 2015)之前,JavaScript 只有全局作用域和函数作用域,没有块级作用域。块级作用域是在代码块(如 if 语句、for 循环等)内部定义的作用域。
示例代码:
function printBlockVariable() {
if (true) {
let blockVariable = \"I am a block variable\";
console.log(blockVariable);
}
console.log(blockVariable); // 报错:blockVariable is not defined
}
printBlockVariable(); // 输出:I am a block variable
作用域链
作用域链是指在 JavaScript 中变量查找的机制。当访问一个变量时,JavaScript 引擎会先在当前作用域中查找,如果找不到,就会向上一级作用域继续查找,直到找到该变量或者到达全局作用域。
示例代码:
var globalVariable = \"I am a global variable\";
function outerFunction() {
var outerVariable = \"I am an outer variable\";
function innerFunction() {
var innerVariable = \"I am an inner variable\";
console.log(innerVariable); // 输出:I am an inner variable
console.log(outerVariable); // 输出:I am an outer variable
console.log(globalVariable); // 输出:I am a global variable
}
innerFunction();
}
outerFunction();
以上就是关于 JavaScript 作用域的简单汇总攻略。希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 作用域scope简单汇总 - Python技术站