Javascript面试题&知识点汇总

Posted zenronphy

tags:

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

问题&答案

什么时候 a ==1 && a== 2 && a==3 为 true?

  var a = {
          i: 1,
          toString: function () {
              return a.i++;
          }
      }
  • 关键点在于==在比较的时候会进行类型转换,上例会调用a.valueOf(a.toString())来将a转换成Number数据类型,因此改写a的toString方法即可。
  var a = [1,2,3];
  a.join = a.shift;
  • 同样的数组a在进行类型转换的时候会调用toString()的方法,而a.toString()其实调用的是a.join(‘‘)方法,因此修改a.join方法使其指向shift方法让其每次只输出第一个值,并且输出后从数组移除即可。
  var val = 0;
  Object.defineProperty(window, 'a', {
    get: function() {
      return ++val;
    }
  });
  • 使用Object.defineProperty()方法为window添加a属性,修改其getter方法,使其依次返回val变量值。

参考资料

  1. 前端开发面试题
  2. 2019寒冬中的深圳前端面试分享(附笔试题)。
  3. Web前端常见面试题汇总
  4. 深入浅出Object.defineProperty

结束语

尺蠖之屈,以求信也;龙蛇之蛰,以存身也。与时屈伸。柔从若蒲苇,非慑怯也;刚强猛毅,靡所不信,非骄暴也。

以上是关于Javascript面试题&知识点汇总的主要内容,如果未能解决你的问题,请参考以下文章

CSS面试题&知识点汇总

2021年8月前端面试题最新出炉-深入剖析&资料汇总

通过面试题学JavaScript知识

通过面试题学JavaScript知识

css面试题汇总 (持续更新)

css面试题汇总 (持续更新)