【发布时间】:2015-12-28 04:12:33
【问题描述】:
Babel 转译以下 ES6 代码
test(){
var list = [ 1, 2, 3 ]
var [ a, , b ] = list
[ b, a ] = [ a, b ]
}
进入这个
function test() {
var list = [1, 2, 3];
var _list = list[(b, a)] = [a, b];
var _list2 = _slicedToArray(_list, 3);
var a = _list2[0];
var b = _list2[2];
}
我不明白这行代码到底发生了什么
var _list = list[(b, a)] = [a, b];
具体来说,我对 list[(b, a)] 一无所知。非常感谢任何帮助?
【问题讨论】:
-
我敢打赌,如果你在 JavaScript 控制台中玩过一点,你就会明白的。
-
我通过评估类似 (1,2,10,9) 的值在控制台中做了一些实验,发现返回的值始终是最后一个表达式的值。我这样做是为了知道 (a,b) 在 list[(b,a)] 中的计算结果。但我对逗号运算符是什么以及它是如何工作的一无所知。在不知道它在语言中的名称的情况下,我无法验证我的发现。还有@loganfsmyth 解释的半冒号插入部分可能永远不会打动我。
标签: ecmascript-6 babeljs