javascript的连等赋值问题&对teambition的故事有些着迷

本文解析了一个关于JavaScript中连等赋值的具体案例,并详细解释了变量a和b指向的对象变化过程,最后得出a.x与b.x的不同结果。同时表达了作者对于自学能力和未来职业方向的看法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.javascript的连等赋值,值得好好想一想。

在网上看到一个题目

var a = {n:3};
var b = a;
a.x = a = {n:6};  
alert(a.x);
alert(b.x);
一开始我认为先弹出{n:6},再弹出undefined,当然不是这样。
why?我原先没有看清a.x的含义!a.x是a的新属性,当然我是美院出生,用图说话:

如图,a和b的指针一开始都指向{n:3}这个对象,a.x=a={n:6}--->属性访问表达式的优先级高于‘=’,解析器会先找到a和a.x的指针,没有被声明的变量会被创建,即a.x会被创建,然后指向Null,随后,a和a.x都指向{n:6},因为指向的对象是个json,a.x给json拓宽了x属性,x属性被赋值{n:6},所以b指向的对象的x属性就是{n:6},a指向了新对象{n:6},没有x属性,a.x=undefined。

2.昨天在网上看到了teambition团队以及他们的故事,有种美好的感觉,我觉得我要朝着这个方向去努力。多学勤学,自学能力才是最好的学习能力。

转载于:https://www.cnblogs.com/liuxingxing1988/p/5330110.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值