JavaScript面试题 | 01

193 阅读1分钟

前言

每天来三道题边回顾知识,边学习新的知识,也可以发现自己的不足,不断前进吧!

1.什么时候不使用箭头函数? 说出三个或更多的例子?

不应该使用箭头函数一些情况:

  • 当想要函数被提升时(箭头函数是匿名的)
  • 要在函数中使用this/arguments时,由于箭头函数本身不具有this/arguments,因此它们取决于外部上下文
  • 使用命名函数(箭头函数是匿名的)
  • 使用函数作为构造函数时(箭头函数没有构造函数)
  • 当想在对象字面是以将函数作为属性添加并在其中使用对象时,因为咱们无法访问 this 即对象本身。

2.new 关键字有什么作用?

function Person(name,age,sex){
       this.name = name;
       this.age = age;
       this.sex = sex;
};
const per = new Person("POLO",18,"男");

new关键字做了4件事:

  • 创建空对象 {}
  • 将空对象分配给 this 值
  • 将空对象的__proto__指向构造函数的prototype
  • 如果没有使用显式return语句,则返回this

3. 有哪些方法可以处理 JS 中的异步代码?

  • 回调
  • Promise
  • async/await
  • 还有一些库:async.js, bluebird, q, co