ES6-面试题总结1

185 阅读2分钟

总结来源于这里

1、let和var,const区别

let具有块局作用域,不会变量提升。
而var会变量提升,不具备块级作用域,只有函数和全局作用域。

2、箭头函数和普通函数的区别

箭头函数没有自己的this指向,它的this指向上下文this,不可以当作构造函数,也就是说new会抛出错误。
没有argument

3、Set,Map,WeakSet和WeakMap的区别

3.1 Set

集合,类似于数组成员都是唯一值。没有重复的值,主要方法有add,delete,has

3.2 weakSet

1、weakSet成员也是唯一的,但是成员是对象,而不是其它类型的值。
2、没有size属性,不能进行遍历。

3.3 Map

1、键值对,也就是hashmap,添加了get、set、has、delete方法,可以遍历。

3.4 weakMap

1、与map类似,只接收对象。

4、async await对比promise的优缺点

4.1 Promise

promise有三种状态,pending(执行中),sucess(成功),rejected(失败)
简单的说Promise就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作的结果)
promise.prototype.catch用于指定Promise的错误捕获。

4.2 async/await优点

能做到串行同步的优点,代码阅读更简单。

4.3 promise,async和await两者区别

promise链式调用,通过then进行返回

5、数组,对象等解构

//数组解构
let [a1,a2,a3,a4]=[1,0,8,6];
//对象解构
let {name,age}=[{name:"JackMaa",age:10086}];

6、class继承

1、class可以通过extends关键字实现继承
2、Object.getPrototype方法可以用来从子类上获取父类
3、super这个关键字,既可以当作函数使用,也可以当作对象使用。
4、子类的__proto__属性,表示构造函数继承,总是指向父类。
5、子类的prototype属性的__proto__属性,表示方法的继承,总是指向父类的prototype属性

Promise高频

Promise优缺点

缺点:
1、无法取消Promise,一旦新建就会立即执行,无法取消
2、如果不设置回调函数,promise内部抛出的错误就无法反应到外部
3、当处于pending状态时,无法得知目前进展到哪一个状态

优点:
1、解决回调地狱问题。
2、代码扁平可读,.then方法链式调用。
3、更好的进行错误捕捉。

Promise.then(),catch().finally?

promise.all:
同时处理多个promise对象,包装到一个新的promise实例中。