1、块级作用域
使用let和const
2、解构赋值
let arr = [1,2,3,4,5,6,7,8,9];
let [a,b,c] = arr;
let obj = {foo:'aaa',bar:'bbb'};
let {bar,foo} = obj;//bar等于'bbb',foo等于'aaa' (按照属性值取值)
function fn({foo,bar}){...}
function fn(input){
//优先使用对象解构赋值返回,这样方便以后添加返回值或者更改返回值顺序
return {value01,value02,value03};
}
3、字符串模版
let name = '嘻嘻';
let text = `你好${name}`;
4、箭头函数
[1,2,4].map((x)=>{
....
});
5、扩展运算符
将数组转为用逗号分隔的参数序列
var arr = [1,2,3];
var arrCopy = [...arr];//复制数组
用于函数的调用
var array = [4,5];
arr.push(...arr);//用于函数的调用
Math.max(...array);
合并数组
var array2 = [7,8,...arr];//合并数组
与解构赋值结合
var [a,...b] = [1,2,3,4,5,6];//b等于[2,3,4,5,6] (与解构赋值结合)
将字符串转为数组
var strArr = [..."lichenglong"];//返回["l", "i", "c", "h", "e", "n", "g", "l", "o", "n", "g"],将字符串转为数组
任何类似数组都可以使用扩展运算符,将其转为真正的数组
var nodeList = document.querySelectorAll("div");
var nodeArray = [...nodeList];//任何类似数组都可以使用扩展运算符,将其转为真正的数组
只要具有Itetator接口的对象,都可以使用扩展运算符
var go = function*(){
yield 1;
yield 2;
yield 3;
}
var arr = [...go()]//[1,2,3] ==> 只要具有Itetator接口的对象,都可以使用扩展运算符
6、属性的简洁表达法
var obj = {
fn(){...}
}