- 词法环境(lexical encironment) ,是Js引擎内部用来跟踪标识符和特定变量之间的映射关系。词法环境是Js作用域的实现机制,通常又被称为作用域;值得注意的是,Js的词法环境在其创建的时候就已经决定了
- 用途:Js的词法环境一般与一个函数、一段代码片段,又或是try-catch语句想关联,这些代码结构可以具有独立的标识符映射表 ;
- 值得注意的是: 函数在定义时的环境与调用函数的环境往往是不相同的,无论何时调用函数,都会创建一个新的执行环境, 被推入执行上下文栈。并且还会创建一个与之相关联的词法环境,Js引擎将调用函数的内置[[Environment]]属性与创建函数时的环境进行关联。在其原来的词法环境中若找不到值,则会向其外部环境中查询
简单的用两个例子来理词法环境
//
var a = 1;
function bar()