在 Javascript 中分配运算符优先级 [duplicate]

Assign operator precedence in Javascript [duplicate]

提问人:Manuk Karapetyan 提问时间:4/4/2019 更新时间:4/4/2019 访问量:85

问:

我有这样的结构

let a = {x: 1}
let b = a
a.x = a = {y: 2}

您如何详细解释我是如何获得这些结果的?

a.x = undefined
a={y: 2}
b={x: {y: 2}}
javascript 赋值运 符运算符优先级

评论

0赞 Lewis 4/4/2019
您刚刚覆盖了一个仅包含属性的对象。 - 您可以在console.log时看到这一点。这些任务是从右到左完成的。aya = {y: 2}a.y
0赞 Bergi 4/4/2019
a.x之前评估过(但尚未写入)a = {y:2}
0赞 Gershom Maes 4/4/2019
此处发生的最后一个赋值是 。这喧嚣.也许您期待最后一行的分配顺序相反?a = { y: 2 };a.x
0赞 Manuk Karapetyan 4/4/2019
@Lewis你只解释一个案例。我明白为什么会这样,但我无法清楚地向其他人解释:)
1赞 adiga 4/4/2019
这在顺序上有有用的答案:为什么这些 JavaScript 片段的行为不同,即使它们都遇到错误?

答: 暂无答案