一、函数作用域的定义
在 JavaScript 中,函数作用域指的是变量在函数内部的可见性和可访问性范围。
二、局部变量
在函数内部声明的变量称为局部变量,它们只能在该函数内部被访问和修改。
function myFunction() {
let localVariable = 10;
console.log(localVariable);
}
三、全局变量
在函数外部声明的变量或者在函数内部未使用 let 、 const 或 var 声明而直接赋值的变量成为全局变量,在整个程序中都可以访问和修改。
globalVariable = 20;
function anotherFunction() {
console.log(globalVariable);
}
四、作用域链
当在函数内部访问一个变量时,JavaScript 会首先在函数内部查找,如果未找到,会沿着作用域链向上在包含该函数的外部作用域中查找,直到找到全局作用域。
五、闭包
闭包是指有权访问另一个函数作用域中的变量的函数。这使得函数可以保留其创建时的环境状态。
function outerFunction() {
let outerVariable = 30;
return function innerFunction() {
console.log(outerVariable);
};
}