ES6
什么是es5
全称ECMAScript6.0,是2015年6月发布的javascript语言的标准
变量let和常量const
var的问题
重复声明,没有错误提醒
没有限制修改
没有块级作用域
let和const
不能重复声明
块级作用域
let是变量,可修改
const是常量,不可修改
函数
箭头函数
如果只有一个参数,()可以省略
如果只有一个return,{}可以省略
参数
参数扩展...args
收集剩余参数,必须是最后一个参数位置
数组简写
解构赋值
是对赋值运算符的扩展
{a:1,b:2,c:3}
左右两边的结构必须一样
声明和赋值不能分开
数组
新增4个方法
map映射
reduce汇总
filte过滤
forEach循环迭代
字符串
新增两个方法
startsWith
endsWith
提供字符串模板
${变量}
面向对象
新增了class关键字,constructor构造器
提供了exetend继承父类功能
json
什么是json
JavaScript Object Notation的缩写,用于数据交换的文本格式
JSON对象
两个静态方法
JSON.parse(string):将json字符串转换成js对象
JSON.stringify(obj)将js对象转换成JSON字符串
Promise
什么是Promise
用于异步操作,同时执行多个操作
可进行成功或失败的回调
三个状态
Pending(进行中)
Resolve(已完成)
Rejected(已失败)
常用方法
Promise.all(arrays)接受一个数组参数
并行执行多个异步操作,可进行回调处理
Promise.race(arrays)接受一个数组参数
哪个操作执行快,就以谁为准来执行回调函数
generator生成器函数
什么是generator
控制函数的执行
在函数名前面加上一个*号
方法
next()
继续执行剩余的部分
yield
可传参,可返回参数
无法传参给第一个next()方法
只可在generator函数内使用