JavaScript具有词汇(也称为静态)作用域和闭包。这意味着您可以通过查看源代码来确定标识符的范围。
四个范围是:
在全局范围和模块范围的特殊情况之外,使用var
(函数范围),let
(块范围)和const
(块范围)声明变量。标识符声明的大多数其他形式在严格模式下具有块作用域。
范围是代码库中标识符有效的区域。
范围由词汇环境的链接嵌套组成,嵌套中的每个级别对应于祖先执行上下文的词汇环境。
这些链接的词汇环境形成范围“链”。标识符解析是沿着此链搜索匹配标识符的过程。
标识符解析仅在一个方向上发生:向外。这样,外部词汇环境无法“看到”内部词汇环境。
确定 JavaScript中标识符范围三个相关因素:
可以声明标识符的一些方式:
可以声明一些位置标识符: