leo*_*fed 2 javascript arrays destructuring
我不是 100% 清楚这段代码是如何工作的:
var a = [1, 2, 3];
[x, y, ...a ] = [0, ...a, 4];
// OUTPUT: [0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
我正在a使用...运算符解构数组。
我期待在第二行会进行一系列任务。
的x将被分配为0,y将被分配给...a(其传递数组中的元素a作为单独的值)。
但是,我不清楚如何将...aget 分配给 4。实际上,JS 在执行以下操作时会抛出异常:
...a = 4;
// Uncaught SyntaxError: Rest parameter may not have a default initializer
Run Code Online (Sandbox Code Playgroud)
为什么这段代码以 end 输出修改后的数组4,而不是抛出异常?这是如何工作的?
它的执行方式如下
var a = [1, 2, 3];
[x, y, ...a ] = [0, ...a, 4];
[x, y, ...a ] = [0, 1, 2, 3, 4];
Run Code Online (Sandbox Code Playgroud)
这意味着将 RHS 数组中的第一个值分配给x,将 RHS 数组中的第二个值分配给y,其余值分配给a。
因此,的值x是0,y是1和a是[2, 3, 4]
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |