1.箭头函数
function add(a,b){
return a + b
}
let add = (a,b) =>{
return a+b
}
- 箭头函数 没有this,arguments,
- 箭头函数 不能通过new关键字调用
- 箭头函数 没有原型 ,也就是没有prototype
- 箭头函数 不可以改变this , this跟外层的this
2.Promise
是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
const promise = new Promise(function(resolve, reject) {
// ... some code
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
.then(callback,callback) : 第一个callback是成功的回调,第二个callback是失败的回调
.catch(callback) : 是失败的回调
通常会写成 :
promise.then((res)=>{}).catch((err)=>{})
Promise.all () : 全部执行完,才执行下一个,
Promise.race() : 只要有任意一个Promise成功或失败,就返回新的Promise对象
例子:需要发送2个请求all,可以用,
需要第一个发送完,拿到数据,再发送第二个,那么也是用这个,链式调用;你也可以用async await方法,用两个await就好了
3. async函数
async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果
- 可以把异步操作包装成promise函数,await就是then命令的语法糖,可以把异步变成同步,
- async函数里面使用return会返回一个promise函数,在外面使用.then 方法获取回调函数
- async函数里面如果异常,不想要在.then里面获取,需要使用throw new Error(‘error’)来抛出异常,表示抛出错误,可以在reject函数中获取到,
4.module模块引用的严格模式
- export 命令对外接口,如果你希望外部能够读取模块内部某个变量,就需要用export去输出
- import 加载export命令下的模块
- export default 匿名加载模块