奇葩面试题记录

Posted andy-lehhaxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇葩面试题记录相关的知识,希望对你有一定的参考价值。

1.    var  a = {n:100};

  var b=a;         为什么要有这步, 因为后面对a的赋值操作会丢失a对{ n:100 } 的引用

       a.x = a = { n:200 };   这是核心考点

  console.log( a.x );    

  console.log( b.x );

  解析: 

  1). js的赋值运算顺序永远都是从右往左的,但是 a.x = a = { n:200 }中,  由于"."是优先级高于"="赋值运算符,所以这行代码先执行了a.x, 即 为变量a引用的{n:100}对象中添加x属性, 并初始化为undefined, 此时初始化完成, 就等待赋值了  此时 a 引用的对象变成了  { n:100, x: undefined }。

  2). 这时才开始赋值操作, a = { n:200 } 再 a.x = { n:200 },  这时不会因为a.x 中的a的引用变了, a.x再去重新初始化, 而是接着赋值给原先的a.x,即 { n:100, x:{ n:200 }}

       总结:  最重要考点:  就是连等赋值   和   变量.属性优先级,   还有  代码在运行前已经编译完毕,  后续会按先前编译的初始化环境赋值

2.. 

以上是关于奇葩面试题记录的主要内容,如果未能解决你的问题,请参考以下文章

奇葩面试题,O(logn)的底数是多少?

奇葩面试题,O(logn)的底数是多少?

华为奇葩面试题:一头牛重800公斤一座桥承重700公斤,请问牛怎么过桥?

华为奇葩面试题:一头牛重800公斤一座桥承重700公斤,请问牛怎么过桥?

华为公司“奇葩”面试题流出:高薪背后的3个认知层次,你在哪一层?

华为奇葩面试题登上热搜!「一头牛重800公斤一座桥承重700公斤,请问牛怎么过桥?」...