JavaScript中的模糊数组赋值

时间:2018-03-15 07:45:15

标签: javascript

看完question之后,我才知道



let a = [1, 2] [3, 4] = [5, 6];

console.log(a);




是有效的JavaScript代码,但我无法理解它是如何工作的。 任何人都可以解释上述代码的工作流程。

1 个答案:

答案 0 :(得分:3)

执行了很多

的变体

let a = [1, 2] [3, 4] = [5, 6];

我来了解

[1, 2] [3, 4]相当于[1, 2][4],其中[1, 2]表示array,而[4]表示[1, 2]数组的第5个索引,但找不到任何数据官方文件。

<强>更新 我在评论中提到的文档是错误的,[]中的[3, 4]是属性访问者,而3, 4是由Comma operator分隔的两个不同的代码语句。在逗号运算符中,由,分隔的每个语句都从左到右执行,并返回最后一个语句的结果。

上面的代码现在简化为

let a = [1, 2][4] = [5, 6];

比较容易理解。如果我们将它简化一点就会变得

&#13;
&#13;
let arr = [1, 2];
let a = arr[4] = [5, 6];

console.log(a);
console.log(arr);
&#13;
&#13;
&#13;

现在很容易解释它arr[4] = [5, 6][5, 6]分配给arr的第5个索引,a = arr[4]arr的第5个索引分配给{{1}现在a已将[5, 6]分配给[5, 6]

现在a的当前值为a,当前值[5, 6]arr

让我们再次重写上面的代码

&#13;
&#13;
[ 1, 2, undefined, undefined, [ 5, 6 ] ]
&#13;
&#13;
&#13;