<分区>
我正在运行以下代码:
const [a, b] = [1, 2]
const [c, d] = [3,4]
[a,b] = [b, a]
console.log(a, b, c, d)
预期结果:
2,1,3,4
实际结果:
1,2,2,1
我知道在每行末尾加上分号可以解决问题,但我不明白为什么我会得到我得到的结果,有人可以解释为什么会这样吗?
标签 javascript
<分区>
我正在运行以下代码:
const [a, b] = [1, 2]
const [c, d] = [3,4]
[a,b] = [b, a]
console.log(a, b, c, d)
预期结果:
2,1,3,4
实际结果:
1,2,2,1
我知道在每行末尾加上分号可以解决问题,但我不明白为什么我会得到我得到的结果,有人可以解释为什么会这样吗?
最佳答案
你不能给 [a, b] 赋值,因为它是常量。 你真正在做的是:
const [c, d] = [3,4][a,b] = [b, a]
因为 a = 1 和 b = 2,这意味着
const [c, d] = [3,4][1,2] = [2, 1]
和
[3,4][1,2] = [2,1]
因此计算为 [2,1]:
一=1 b = 2 c = 2 d = 1
它还将数组 [3,4] 的第二个元素设置为 [2,1] 但是这个数组没有分配到任何地方所以没关系
关于javascript - 看似无稽之谈的 Javascript Restructuring 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57423405/
相关文章:
javascript - 如果变量为 true false,是否有使值变为负值/正值的简写?
javascript - redux connect mapStateToProps 在调度 Action 时不调用
javascript - IE8、jQuery UI 工具提示在 Internet Explorer 8 中立即关闭
javascript - 在不使用过渡的情况下将html div的高度更改为顶部
javascript - 在div下创建一个三 Angular 形附录?
javascript - 如何在外部存储 javascript 变量(没有服务器)的值?
javascript - 这是 JavaScript 中基本/简单高阶函数的示例吗?
javascript: getAverageAge 所有对象