【发布时间】:2021-03-30 20:07:54
【问题描述】:
由于后缀++ 存在于语言中,以下将始终使v[0] ← v[1]:
v = [8, 7, 6, 5];
i = 0;
v[i++] = v[i];
console.log(v[0]); // gives 7
现在有了解构赋值,情况就不同了——我只能用 Chrome 和 Firefox 进行测试:
v = [8, 7, 6, 5];
i = 0;
[v[i++]] = [v[i]]; // does "v[0] ← v[0]"
console.log(v[0]); // gives 8
两者都会以 i 的预期值 1 结束。我在解构赋值的左侧尝试了许多其他变量赋值之王,而这些变量赋值一直被主解构的右侧忽略一。然后在解构之后,新的变量值又回到了那里。为什么?
【问题讨论】:
标签: javascript variable-assignment destructuring