javascript - 看似无稽之谈的 Javascript Restructuring 结果?

标签 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 所有对象

javascript - 使用ajax添加日期格式javascript时表单无法保存

javascript - JQuery 回调工作