- let关键字
- 用于声明变量的块级作用域,防止循环变量变成全局变量,先声明再调用,不存在变量提升,不允许重复声明
- const常量
- 声明常量一定要有初始值,具有块级作用域,复杂类型数据中不可改,内部可改
- 模板字符串
- 反引号``
- 可以解析变量 ${xxx}
- 可以换行
- 可以调用函数${fn()}
- 解构赋值
- 数组结构允许我们按照一一对应的关系从数组中提取值然后将值赋值给变量
var [a,b]={'gg','as'}
字符串结构当做数组结构处理
- 对象结构允许我们使用变量的名字匹配对应的属性,匹配成功将对象的属性赋值给变量
let {name,age}=obj
- 对象中属性的简写,用在exports中美观
- var [a,b,c]=[1,2,3]
- var o = {a,b,c}
- o={ a:1,b:2,c:3}
- 数组结构允许我们按照一一对应的关系从数组中提取值然后将值赋值给变量
- Promise
- 异步编程的方案
- 语法:new Promise((resolve,reject)=>{}).then(data).catch(err)
- 三种状态
- 等待状态: 等待网络请求,或定时器未到达时间
- 成功状态: 主动回调resolve,并调用then()
- 失败状态: 主动回调reject,并调用catch()
- Promise.all()
- 若连续发送2次以上请求时调用该方法
- 箭头函数
- ()=>{}简化函数定义语法
- 箭头函数不绑定this关键字,this指向函数定义位置上下文
- 箭头函数不能做构造函数,不能new实例化,没有原型prototype对象
- ()=>{}简化函数定义语法
- 原型对象
- 构造函数公共属性,prototype属性
- 构造函数fun()通过prototype获取原型对象
- 实例对象通过 __proto__获取原型对象
- object原型原型对象上的方法(静态方法)
- 原型继承
- 构造函数B的prototype = 构造函数A的实例化对象,让B的原型对象继承A的实例对象
- 原型链继承
- 优点:子类对象能够继承父类对象以及父类对象的原型对象的成员(整个原型链上的成员)
- 缺点:破坏了原型链,(将子类的construtor属性丢了)
- 使用场景
- 闭包
- 一句话可以概括:闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用,子函数所在的父函数的作用域不会被释放。
- 两个函数嵌套,外部想访问内部的变量使用return
- 能够使函数外部的变量,常驻内存(数据始终保存在内存中,不会被销毁)
- //闭包缺点:由于内部数据不会被自动销毁会占用太多内存
- 改变this的指向问题
- 函数.apply()
- 前面调用this的指向,后面通过数组将参数传递,然后调用函数
- 前面调用this的指向,后面通过数组将参数传递,然后调用函数
- 函数.call()
- 前面调用this的指向,后面一个一个传参,然后调用函数
- 函数.bind()
- 返回新函数,默认不调用需手动
- 例子,获取一个数组里的最大值,通过math.max()和apply()
- 函数.apply()
- 类和对象
- class声明类,不需要用到构造方法里的属性使用静态方法,通过类名访问静态方法;实例方法通过实例对象调用。静态方法和实例方法两者名称可相同,不相互影响
- 解决异步回调地狱
- promise
- 通过async,await函数将异步函数以同步的形式执行
Es6常用属性
最新推荐文章于 2023-11-19 21:25:11 发布