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).缺点:闭包会造成内存泄漏,影响网页性能