在JavaScript中,函数作用域与闭包是两个至关重要的概念。它们不仅影响着变量的可见性和生命周期,还决定了函数的行为和可复用性。理解并掌握这两个概念,对于编写高效、可维护的JavaScript代码至关重要。
一、函数作用域
作用域(Scope)是变量和函数可访问性的一个基本概念。在JavaScript中,作用域决定了变量和函数的可见范围,即它们在哪里可以被访问和使用。JavaScript主要有两种作用域:全局作用域和局部作用域(也称为函数作用域)。
1. 全局作用域
全局作用域是最外层的作用域,它存在于整个代码执行期间。在全局作用域中声明的变量和函数,可以在代码的任何位置被访问。全局变量如果不被显式地删除,会一直存在于内存中,直到浏览器关闭。
var globalVar = "I am global";
function showGlobalVar() {
console.log(globalVar); // 可以访问全局变量
}
showGlobalVar