ES6
# 箭头函数
- 箭头函数没有原型链,不能当做构造函数不能被 new,会报错
- 不能使用 arguments 对象,该对象在函数体内不存在,如果要用可以使用 rest 参数代替
- 不能使用 yield 命令,因此箭头函数不能作 Generator 函数
# Promise
- 如何停止
- all
- (1)只有 p1、p2、p3 的状态都变成 fulfilled,p 的状态才会变成 fulfilled,此时 p1、p2、p3 的返回值组成一个数组,传递给 p 的回调函数。
- (2)只要 p1、p2、p3 之中有一个被 rejected,p 的状态就变成 rejected,此时第一个被 reject 的实例的返回值,会传递给 p 的回调函数
- race -只要 p1、p2、p3 之中有一个实例率先改变状态,p 的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给 p 的回调函数。
- 作用
- 解决回调地狱
- 实现异步
- 代码实现
- 链式调用,返回一个新的对象
- async、await 优缺点
- async 和 await 相比直接使用 Promise 来说,优势在于处理 then 的调用链,能够更清晰准确的写出代码。
- 缺点在于滥用 await 可能会导致性能问题,因为 await 会阻塞代码,也许之后的异步代码并不依赖于前者,但仍然需要等待前者完成,导致代码失去了并发性
# polyfill
# 遍历器
- for...of
- 字符串识别大于 0xFFFF(𠮷)的码点,for 循环会认为它包含两个字符(都不可打印),而 for...of 循环会正确识别出这一个字符。
- Iterator
- 为各种数据结构,提供一个统一的简便的访问接口;使得数据结构的成员能够按某种次序排列
- Generator
- 定义时带星号
- 函数会返回一个遍历器对象
- yield 定义不同的状态,调用 next 方法执行 yield 部分的代码
- next 方法可以带一个参数,该参数就会被当作上一个 yield 表达式的返回值
# proxy
- 事件代理