ES6语法特性
变量
- 变量声明
变量 | 重复声明 | 限制修改 | 作用域 |
---|---|---|---|
var | 可以 | 不限制 | 函数级 |
let | 不可以 | 不限制 | 块级 |
const | 不可以 | 限制 | 块级 |
- 解构赋值
- 数组和对象
- 两边结构一样
- 赋值和解构同时完成
函数
- 箭头函数简写
- 如果有且仅有一个参数,()可以不写
- 如果有且仅有一个语句并且是return,{}可以不写
- 箭头函数this
- 固定this为指向当前环境
- 参数展开 …
- 收集参数
- 数组展开和json展开
- 数组连接和json合并
原生对象扩展
- Array数组对象
- map:映射,一一对应
- reduce:n=>1,求和
- filter:过滤
- forEach:遍历
- 模板字符串
- 反单引号
- ${var} 变量植入
- JSON对象
- JSON.stringify():序列化,json转字符串
- JOSN.parse():反序列化,字符串转json
Babel
-
作用:转换代码,兼容低级浏览器
-
使用
异步操作
-
异步操作:同时进行多个操作,用户体验好,代码混乱
-
回调地狱
-
结合异步、同步
-
Promise——封装异步操作
-
用法
-
Promise.all()
-
-
async/await
async function show(){ try { let data = await $.ajax(); }catch(e){ alert("失败"); } }
面向对象
ES6面向对象
ES6模块系统
ES7/8/9
- 幂操作:(3**5)
- Array.includes():检测是否存在
- async/await:ES8
- rest/spread:ES9
- 异步迭代
- Promise.all/race/finally