13、简述输出以下代码的执行结果并解释为什么 ?

问题:简述输出以下代码的执行结果并解释为什么 ?

1
2
3
4
5
6
var a = { n: 1 };
var b = a;
a.x = a = { n: 2 };

console.log(a.x)
console.log(b.x)
1
2
3
答案:
undefined
{ n: 2 }
1
2
3
4
5
6
7
8
9
10
11
12
解析:
核心点为:a.x = a = { n: 2 };
这是一个复合赋值操作,执行顺序为从右到左
a = { n: 2 };
⭐️ a.x = a 这其中的 a.x 中的 a 还是旧值,即跟 b 指向的对象
所以 a.x = b.x = a

所以最后 a = { n: 2 }; b = { n: 1, x: { n: 2 } }

可以将 a.x = a = { n: 2 }; 分成如下代码:
a.x = { n: 2 }
a = { n: 2 };

13、简述输出以下代码的执行结果并解释为什么 ?
https://mrhzq.github.io/职业上一二事/前端面试/每日一题/13、简述输出以下代码的执行结果并解释为什么 ?/
作者
黄智强
发布于
2024年1月23日
许可协议