1. Promise 的理解

promise是为了解决异步回调地狱(回调地狱:回调函数嵌套回调函数的意思)的一种状态机,共有三种状态,pending等待中,fulfilled成功,reject失败.

promise的优点:

1)不受外界影响,只由pending-fulfilled状态改变或者只由pending-reject状态改变,且状态不可逆

2)promise支持链式.then()写法

3)promise.all(),

promise的缺点:

1) 无法取消Promise,一旦新建它就会立即执行,无法中途取消
2) 如果不设置回调函数,Promise内部抛出的错误,不会反映到外部

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

1).箭头函数没有this指向,只能通过作用域链寻找this属性

2).箭头函数不支持apply(),call(),bind(),改变this指向的方法

3).箭头函数没有原型,不支持arguments,不能构造函数

3.Call(), bind(), apply()的区别

1).apply()方法接受两个参数,第一个参数是this指向,第二个参数是数组,当第一个参数为undefind,null时,默认指向windows,apply()方法会立即执行且临时执行一次

2).call()方法接受两个参数,第一个参数是this指向,第二个参数是参数列表,当第一个参数为undefind,null时,默认指向windows,apply()方法会立即执行且临时执行一次

3).bind()方法接受两个参数,第一个参数是this指向,第二个参数是参数列表(与call()方法不同的是此参数列表可多次传入),bind()方法不会立即执行而是返回一个永久改变this指向的函数

4.防抖和节流

1).防抖:是指函数在n秒内只执行一次,如果n秒内又触发了此事件,则会重新计算

2).节流:是指函数在n秒内只执行一次,执行过程中不会被打断

5.闭包

1)概念:函数嵌套函数,函数内部可以使用函数外部定义的变量

示例如下所示:

fn1(){

let a = 9999;

fn2() {

alert(n);

}

2).优点:闭包可以避免全部变量污染,延长变量的生命周期,变量可以不被垃圾回收机制回收

3).缺点:闭包会造成内存泄漏,影响网页性能