call、apply、bind区别
apply和call都是为了改变某个函数运行时的上下文而存在的(就是为了改变函数内部this的指向);
如果使用apply或call方法,那么this指向他们的第一个参数,apply的第二个参数是一个参数数组,call的第二个及其以后的参数都是数组里面的元素.
bind()–也是改变函数体内this的指向;
bind会创建一个新函数,称为绑定函数,当调用这个函数的时候,绑定函数会以创建它时传入bind()方法的第一个参数作为this,传入bind()方法的第二个及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数.
bind与apply、call最大的区别就是:bind不会立即调用,其他两个会立即调用.
promise
同时发N个请求,无论成功与否,之后再操作.then
用数组把promise存起来,然后用map返回结果,分成resolve和reject
promise和async/await区别
1 promise是ES6,async/await是ES7
2 async/await相对于promise来讲,写法更加优雅
3 reject状态: 1)promise错误可以通过catch来捕捉,建议尾部捕获错误, 2)async/await既可以用.then又可以用try-catch捕捉
Promise then catch 虽然解决了回调函数,但 then catch 又带来了回调函数
Async/await 是同步语法,触底消灭回调函数
执行async 函数, 返回的是Promise对象,
Await 相当于Promise的then 处理不了失败的回调
Await 可用try…catch 捕获异常, 代替了了Promise 的catch