Js词法环境及作用域

词法环境是JS引擎用于跟踪标识符与变量映射的关键机制,它在创建时就确定了作用域。每个函数、代码块或try-catch都有独立的标识符映射。函数在定义和调用时的环境不同,每次调用都会创建新的执行环境并关联新的词法环境。例如,foo函数保存了全局环境的引用,而bar函数保存了foo的引用,因此在foo中查找变量a时,会从全局环境而非bar环境中查找。
摘要由CSDN通过智能技术生成
  1. 词法环境(lexical encironment) ,是Js引擎内部用来跟踪标识符和特定变量之间的映射关系。词法环境是Js作用域的实现机制,通常又被称为作用域值得注意的是,Js的词法环境在其创建的时候就已经决定了
  2. 用途:Js的词法环境一般与一个函数、一段代码片段,又或是try-catch语句想关联,这些代码结构可以具有独立的标识符映射表 ;
  3. 值得注意的是: 函数在定义时的环境与调用函数的环境往往是不相同的,无论何时调用函数,都会创建一个新的执行环境, 被推入执行上下文栈。并且还会创建一个与之相关联的词法环境,Js引擎将调用函数的内置[[Environment]]属性与创建函数时的环境进行关联。在其原来的词法环境中若找不到值,则会向其外部环境中查询

简单的用两个例子来理词法环境

// 
var a = 1;
function bar()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值