js经典面试题

1
2  
解:js中“.”与“=”同时存在时,优先计算“.”,也就是a.x=a={n:2}中,{n:2}先赋值a.x  。a增加一个属性(键)他的值为{n:2}。x={n:2}  此时引用地址还是等于之前赋予b的引用地址 即b={n:1,x:{n:2}}   然后再赋值a  即a={n:2}  此时a获得一个新的键值,引用地址也会改变,之前的地址就不会再调用了,重新获得属性是没有x属性了所以打印时a.x就会显示undefined。 故结果如图2 以上为自己的解题想法,如有错误劳请大家指出!!