js连续赋值a.x=a={n:2}
程序员文章站
2024-03-17 21:34:46
...
var a = {n : 1}
var b = a;
a.x = a = {n : 2}
console.log(a.x);
console.log(b);
此题重点:js复杂数据类型在内存中如何存储
由undefined知:对象a经过运算后,对象内无x属性
由b知:a.x的赋值有效
在var时
a.x = a = {n : 2}运算
a.x保存在原先地址上,其后对象a指向了新地址
附:
个人理解与运算顺序关系不大,重点在于运算时,a当前的值是什么 ,如a.x执行时还未经过{n : 2}的赋值,其属性x运算在原先的{n : 1}上,其后运算才改变其值,所以得此结果。
另:
a = a.x = {n : 2} 也是同样的套路,运算a.x时,对象a值未改变,还是在{n : 1}上,所以是先在{n :1}上发生a.x = {n : 2}的操作,再重新赋对象a值,所以两个式子结果相同
上一篇: week15
推荐阅读
-
【转载】连续赋值和内存指针的问题解析(a.x=a={n:2})
-
js中连等的执行顺序:a.x = a = {n: 2}
-
js连续赋值a.x=a={n:2}
-
最短无序连续子数组(在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。)
-
Java实现的连续奇数(n+2*x)是合数的算法题暴力算法
-
Java实现的连续奇数(n+2*x)是合数的算法题暴力算法
-
js中连续赋值的经典案例
-
js给bootstrapselect和bootstrapselect2赋值方法
-
剑指OFFER----53-2、0~n-1中缺失的数字(js实现)
-
js中变量的连续赋值(实例讲解)