You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECMA262赋值表达式中LeftHandSideExpression求值规则咨询

你给出的示例代码如下:

var myVar = 'Hola';
{
  let myVar;
  myVar = 'Hello'
}

针对第四行赋值语句左侧myVar作为LeftHandSideExpression的求值逻辑,具体步骤如下:

  • 确定当前执行上下文的词法环境:代码运行到块级作用域内部,当前使用的是这个块对应的词法环境,全局词法环境是它的外层引用对象。
  • 标识符解析:在当前词法环境的环境记录中查找myVar绑定,按照由内到外的查找规则,首先命中块内用let声明的myVar绑定,不会向上找到全局作用域的var声明的同名变量。
  • 生成引用值:返回这个绑定对应的可写引用,该引用包含三个核心信息:绑定所属的环境记录(当前块级作用域的环境记录)、绑定名称myVar、当前上下文的严格模式标记。
  • 后续赋值操作会基于这个引用,把右侧'Hello'的值写入到对应的绑定中,仅修改块内myVar的值,对全局的myVar没有影响。

内容的提问来源于stack exchange,提问作者AngryJohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:57:03