5. 箭头函数_this 指向_es6 常用语法
1. 箭头函数
函数的简写方式
() => {}
只有一个参数时,可以省略() ---- x => {}
只有一条语句时,可以省略{},此时这点语句的结果会作为函数的返回值返回 () => console.log('hello');
特点:
箭头函数没有自己的 this,与离他最近的一层包裹它的函数的 this 一致,如果没有函数就指向 window
箭头函数没有 prototype 属性,有 __proto__ 属性
箭头函数不能 new 调用
箭头函数不能强制修改 this 指向
2. 谈谈 this
foo() window
obj.foo() obj
foo.call(obj) obj
new foo() 实例对象
箭头函数的 this 与离他最近的一层包裹它的函数的 this 一致,如果没有函数就指向 window
DOM事件 dom元素
定时器 window
3. promise
解决异步编程的一个方案/技术
解决异步编程,以同步的方式表达异步的代码, 从而解决回调地狱的问题
promise 对象有 3 种状态
初始化状态(默认情况下) pending 准备
成功的状态 (一旦变成成功的状态就会立即触发成功的回调) fullfilled
失败的状态 (一旦变成失败的状态就会立即触发失败的回调) rejected
使用:
new Promise((resolve, reject) => {异步代码})
Promise.resolve/reject()
Promise.all([promise1, promise2...])
promsie.then(捕获成功的状态,执行成功的回调函数).catch(捕获失败的状态,执行失败的回调函数)
4. async 函数修饰关键字
用来定义函数,真正解决回调地狱的问题,异步编程的最终解决方案
await Promise对象;
只能在 async 函数中使用
后面必须跟着 promise 对象,async 函数返回值也是pormise对象
当 promise 对象状态是初始化状态,await 会等待,直到变成成功/失败才会接着运行
await等待promise对象变成成功时,会将其返回值返回到左边去,可被变量接收
5. ES6 其他常用的语法
解构赋值
形参默认值
模板字符串 `${js 代码将被执行}`
简化对象的写法
三点运算符
Symbol 新的数据类型
iterator 新的接口,提供统一的遍历方法 for of