一、let声明变量
1.let声明的变量不会挂在window中,不会造成全局变量的污染ES6新特性
2.新增了一个块级作用域{},以前只有函数作用域,全局作用域
ES6新特性
3.let是不允许重复声明
ES6新特性
4.let不会有声明提前(只是人为看到的效果,实际上是有声明提前,提前临时性的死区中:Cannot access ‘num’ before initialization)
ES6新特性
二、const声明常量
1.跟let完全相同 增加几个点
2.不允许被修改(不允许改变内存空间的地址)
ES6新特性
3.const声明和赋值必须一次性完成,并且后期不允许改变存储空间的地址
ES6新特性
三、字符串模板
在以前的字符串之上增加了一些功能
ES6中,可用${表达式}字符串进行拼接,可以添加串,可以使用转义字符,可以嵌套
ES6新特性
ES6新特性
四、解构
在ES6中,可以使用解构从数组和对象提取值并赋值给独特的变量
可以简化书写的长度,提升效率
ES6新特性
五、展开运算符(…)
可以起到参数收集作用
1.收集符只能出现一次
2.一个函数,剩余参数收集只能在最后一个形参
ES6新特性
运用在数组中,函数中 object是ES7新增的
ES6新特性
六、默认值
参数默认值 可以传递表达式,不能传递语句
注意:只要给函数加上了参数默认值,该函数就自动变成严格模式
ES6新特性
七、箭头函数
语法:箭头函数是一个函数表达式,理论上,任何使用函数表达式的地方都可以改成箭头函数
(参数1,参数2…) => {
函数体
}
1.对象调用函数,this指向对象
2.直接调用函数,this指向window
3.如果使用了new关键字,this指向新创建的对象
4.如果使用apply,call,bind this指向绑定的数据
5.如果是DOM事件函数,this指向事件源
箭头函数的写法
简写
1.如果参数只有一个,可以省略小括号
参数 => {}
2.如果箭头函数只有一条返回语句,可以省略花括号,可以省略return
参数 => 返回值
2.1 如果返回值是一个对象的时候,就会认为成函数体,把返回值变成表达式的形式

1.箭头函数中没有this,argument,new.target,如果要强行使用,则指向函数外层对应的this,argument,new.target
ES6新特性
2.箭头函数没有原型,所有说占用空间非常小,不能当成构造函数来使用

八、类
1.类的声明不会被提升,和let const 一样,有临时性死区
2.类的所有代码全都是在严格模式中执行
3.类的所有方法都是不可枚举的
4.类的所有方法都无法当成构造函数直接使用
5.类的构造器必须使用new 来调用
ES6新特性
九、symbol
1.没有字面量的写法
2.新的数据类型,typeof返回的是symbol
3.每次去调用Symbol函数得到的符号永远不会相等,不管符号描述是否相同
ES6新特性
4.可以作为对象的属性名使用,这种属性名叫符号属性
ES6新特性
5.符号属性不能被枚举
6.符号类型无法被隐式转换,数学运算,字符串拼接都是不行的
ES6新特性
共享符号
Symbol.for(“符号描述”) 如果符号描述相等,则可以得到同一个符号
ES6新特性
十、promise
ES6将程序分为了三种状态 pending resolved rejected
pending:挂起(等待) 处于未决阶段,表示事情还是在挂起,最后的结果没有出来
resolved:已处理 处于已决阶段,表示整个事情已经出现结果,并且可以按照正常的逻辑进行下去的结果
rejected:已拒绝 处于已决阶段,表示整个事情已经出现结果,并且是一个无法按照正常逻辑进行下去的结果
const pro = new Promise((resolve,reject) => {
未决阶段
通过调用resolve函数将promise推向已决阶段的resolve状态
通过调用reject函数将promise推向已决阶段的reject状态
resolve 和 reject 只能使用一个,如果使用了多个,也只有第一个有用
传递参数只能有一个,表示推向状态的数据
resolve({})
reject(456)
})
pro.then(data=>{
thenable函数,promise已经是已决阶段,resolve状态

},err => {
catchable reject状态
})
1.未决阶段的处理函数是同步的,会立即执行
2.thenable和catchable函数是异步的,就算会立即执行,也是会加入等待队列中,加入微队列
3.pro.then可以只添加thenable函数,pro.catch可以单独添加catchable函数
4.在未决阶段的处理函数中,如果发生未补获的错误,会将状态推向rejected,并且会被catchable捕获
5.一旦状态推向了已决阶段,无法再去做任何的改变
ES6新特性

相关文章: