ES5 是对 JS 的修修补补
ES6/2015 新特性
作用域
-
- 块级作用域
{
let a = 1
console.log(a)
}
-
- 块级变量 let
- 块级常量 const
箭头函数
const f = (a, b) => {
console.log(a+b)
return a+b
}
const f2 = (a, b) => a+b
const f3 = a => a * a
箭头函数中的this被作为普通变量看待
参数处理
- 默认参数值
function fn(p='gorge', p2='eddy', p3='leo'){
console.log(p, p2, p3)
}
fn() //会打印出gorge eddy leo
- 剩余参数
const fn2 = (...args) => {
console.log(args)
}
fn2(1, 2, 3)
- 展开运算符
模板字面量
- 多行字符串
- 字符串插值(可以插入变量)
let a = 13
console.log(`小明的年龄为${a}`) //打印出13
解构赋值
- 数组匹配
let a = 1;
let b = 2;
[a, b] = [b, a] //交换 a b 的值
- 对象匹配
模块
- 导入
- 导出
ES7/ 2016
- Array.prototype.includes
const a = ['a', 2, 'sa']
a.includes('a') //true
- ** 运算符
2 ** 3 //8
2 ** 4 //16
ES8 / 2017
- async / await