> 本文阐述JavaScript的作用域与作用域链。作用域是决定变量可访问范围的规则(分全局、函数、块级),作用域链则是变量由内向外逐级查找的机制。 我们来深入浅出地讲解一下 JavaScript 中非常核心的概念:作用域 (Scope) 和 作用域链 (Scope Chain)。 理解这两个概念对于编写高质量、无 bug 的 JavaScript 代码至关重要。 --- 一、作用域 (Scope) 1. 什么是作用域? 你可以把作用域想象成一套规则,这套规则用来管理和查找变量。简单来说,作用域定义了变量和函数在代码中哪些区域是可访问的。 它的主要目的有两个: 1. 隔离变量:防止不同代码块中的变量互相冲突(即“命名冲突”)。 2. 安全性:决定了代码块对外的暴露程度,有些变量只允许内部使用,外部无法访问。 2. 作用域的类型 在 JavaScript 中,主要有三种类型的作用域: a. 全局作用域 (Global Scope) 定义:在代码的最外层定义的变量,或者在所有函数之外定义的变量,都拥有全局作用域。 特点: 在代码的任何地方都可以被访问和修改。 在浏览器环境中,全局作用...