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

词法环境是JS引擎用于跟踪标识符与变量映射的关键机制,它在创建时就确定了作用域。每个函数、代码块或try-catch都有独立的标识符映射。函数在定义和调用时的环境不同,每次调用都会创建新的执行环境并关联新的词法环境。例如,foo函数保存了全局环境的引用,而bar函数保存了foo的引用,因此在foo中查找变量a时,会从全局环境而非bar环境中查找。

1132

被折叠的 条评论
为什么被折叠?



