【发布时间】:2016-01-02 14:49:49
【问题描述】:
在Babel网站上,在解构范围内找到如下demo:
// Fail-soft destructuring
var [a] = [];
a === undefined;
用 Babel 转译这段代码后,我在 ES5 中得到以下结果:
"use strict";
var _ref = [];
var a = _ref[0];
什么是软故障解构,转译语法背后的逻辑是什么?编辑:为什么 Babel 以这种方式转换 ES6 代码,而不是仅仅将 undefined 分配给变量?
编辑:
我明白了,我猜它只是将变量值放入undefined,而不是抛出错误。不过,对转译逻辑仍有一些疑问。
【问题讨论】:
-
为什么数组的内容会影响转译?
-
@zeroflagL 完全没有理由,我的想法完全错误,认为这个软解构的东西有一些复杂/特别的东西,忘记了我们只是分配一个数组- 哼。没想到就是这么简单的事情。