【发布时间】:2018-02-16 21:18:57
【问题描述】:
环境
Google Chrome:61.0.3163.79 beta (64 位)(同类群组:Beta)
JavaScript 引擎:V8 6.1.534.32
代码
在 Chrome 中,打开一个新选项卡,在控制台中一一键入以下代码:
let [a = b, b = 1] = [];
typeof a;
let a = 'other value';
a = 'other value';
问题
有人可以解释为什么第一条语句let [a = b, b = 1] = [] 将变量a 设为'a 未定义' 和'标识符'a' 已被声明' 同时?
第一条语句执行有什么魔力?
和ES6 “Temporal Dead Zone” (TDZ)有关系吗?
更新
示例代码无效,我只想知道输出的原因。 :)
【问题讨论】:
-
这是一个有效的语法吗?你并没有完全破坏任何东西。例如,
[a, b] = [1, 2]可以很好地解构 -
嗨@VamshiGudipati,是的,代码确实无效,我在问输出的原因。
标签: javascript google-chrome ecmascript-6 destructuring