ES6 的新特性
- let const
- 箭头函数
- 解构赋值
- 扩展运算符 ...
- 字符串和变量的拼接
my name is ${name} - 字符串方法
includes() 包含就返回布尔值startsWith() 判断字符串开头,返回布尔值endsWith() 判断字符串结尾,返回布尔值
- 数组方法
Array.from() 将对象转换成数组:还可以接收一个参数Array.of() 接收值转换成数组find() 找到就返回第一个满足条件的值
- async await
- let const
- 解构赋值
- class extend 类声明和继承
- Set Map
- 箭头函数
- promise
- async await
- 数组的扩展
- 字符串的扩展
Promise 怎么实现链式调用跟返回不同的状态
实现链式调用:使用.then()或者.catch()方法之后会返回一个 promise 对象,可以继续用.then()方法调用,再次调用所获取的参数是上个.then()方法 return 的内容。
- Promise 的三个状态是 fulfilled(已成功),pengding(进行中),rejected(已拒绝)
- 状态只能由 pengding-->fulfilled 或者 pengding-->rejected 状态一旦确认不可二次修改。
- Promise 中用 resolve 和 reject 两个函数来更改状态。
- .then 方法做的事情就是状态判断 状态成功,调用成功回调函数 状态失败,调用失败回调函数
Promise 和 async/await 的区别
async/await 是基于 promise 实现的。
- async 函数返回一个 Promise 对象,await 阻塞后面的代码执行
- 不需要写箭头函数处理 promise 的 resolve 值
- async/await 可以让 try/catch 同时处理同步错误和异步错误
- 中间值处理,解决嵌套问题。第一个方法返回值,用做第二个方法的参数
async 函数是 generator 函数的语法糖 ,async 函数始终返回一个 Promise,await 可以实现一个 等待 的功能,async/await 被称为异步编程的终极解决方案,即用同步的形式书写异步代码,并且能够更优雅的实现异步代码顺序执行以及在发生异步的错误时提供更精准的错误信息
Promise 怎么拦截错误
- .catch
使用 catch 方法 捕捉错误,但是 catch 方法只能捕捉到同步错误,异步错误捕捉不到。