这几道JS面试刁钻题,你能答对吗😎

1,084 阅读1分钟

2020年3月10日
《每日一题系列🚀》
作者:王二狗
博客:掘金思否知乎简书CSDN
点赞再看,养成习惯,每日一题系列会一直更新下去,你们的支持是我持续分享的最大动力😘

第一题:下面代码输出的结果是什么?

[1,2,3].map(parseInt) 

通过分析可知,上述代码就相当于:

parseInt('1',0) // 相当于 parseInt('1') 所以答案就是 1
parseInt('2',1) // 把2当做1进制来理解
parseInt('3',2) // 把3当做2进制来理解

所以最终的答案就是:1 NaN NaN

第二题:a.x的值是什么?

var a = {name:'a'}
a.x = a ={}

直接说答案吧,因为这道题我也不会,会的小伙伴在评论区赐教呀。😝

答案:undefined

第三题:(a==1 && a==2 && a==3)可能为true吗?

//利用 == 会调用 valueOf() 的特性
 var a = {
  value: 1,
  valueOf(){
   return this.value++
  }
 }
 a ==1 && a== 2 && a==3 // true

//利用 a 会读取 window.a 的特性
 var value = 1; 
 Object.defineProperty(window, 'a', {
     get(){
         return value++;
     }
 })
 a ==1 && a== 2 && a==3 // true
  // 或者 
 a ===1 && a=== 2 && a===3 // true

告诫自己,即使再累也不要忘记学习,成功没有捷径可走,只有一步接着一步走下去。 共勉!

文章中如有不对的地方,欢迎小伙伴们多多指正。

谢谢大家~ 💘