美文网首页
一个面试题

一个面试题

作者: a4316976150e | 来源:发表于2017-02-25 05:16 被阅读0次

<code>
var a = {
n:1
}
var b = a;
a.x = a = {
n:2
}
console.log(a.x)
console.log(b.x)
</code>
连等赋值为A=B=C;从右往左,所以是C=B,B=A;
所以这段代码应该是这样执行的:全局执行上下文创建后,创建变量对象时,创建一个变量a 它的值为一个引用地址的指针,指向n:1
然后创建一个变量b,它的值为变量a的引用地址指针,此时,a和b是完全一样的
然后执行下面的代码,按照早先的思路,连等赋值应该是从右往左执行的,应该是n:2这个值赋给a,然后a赋值给a.x,所以a.x应该为n;2,b.x应该为undefined;实际是错的。
先创建一个新的引用地址 n:2
.运算符是优先于=运算符的,所以先声明一个a的属性x,为undefined,此时a是指向b的,所以b现在也拥有一个x属性为undefied,然后将a变量的引用地址指针改变为n:2,因为a的变量引用地址指针变成了n:2,新的引用地址当中没有x这个属性,所以x为undefined.
然后a.x现在指向的是旧的引用地址,也就是b的引用地址中的x,然后将b.x赋值为n:2。所以最后,a.x应该为undefined,b.x为n:2

Paste_Image.png

相关文章

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 高阶面试题

    webpack面试题 面试题:webpack插件 Git面试题 面试题:git常用命令 面试题:解决冲突 面试题:...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • java实习生面试题题库

    java实习生面试题,java基础面试,java面试题2018及答案,java面试题库 1、[一个.java源文件...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • java实习生面试题_java基础面试_java面试题2018及

    java实习生面试题,java基础面试,java面试题2018及答案,java面试题库1、一个.java源文件中是...

  • 2019-06-06

    iOS高级面试题 如何面试iOS工程师 一个渣硕iOS春招总结 请你出一套iOS面试题 压倒程序员的最后一个面试题...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

网友评论

      本文标题:一个面试题

      本文链接:https://www.haomeiwen.com/subject/bmegwttx.html