看网上总结的很全,但是很多自己目前用不到,挑几个常用的记录一下
块级作用域及块级变量let、块级常量const
ps:let与const区别,一个变量一个常量,const一旦声明就必须初始化,且不可再次改变
箭头函数
()=>{}
默认参数值
fuc sum(a,b=1){return a+b};
let c = sum(1);//c=2
剩余参数(剩余参数语法允许我们将一个不定数量的参数表示为一个数组。)
function sum(...theArgs) {
return theArgs.reduce((previous, current) => {
return previous + current;
});
}
console.log(sum(1, 2, 3));
// expected output: 6
console.log(sum(1, 2, 3, 4));
// expected output: 10
多行字符串(不用再加换行符)
console.log(`string text line 1
string text line 2`);
// "string text line 1
// string text line 2"
解构赋值
数组匹配 [ b, a ] = [ a, b ]
对象匹配 let { a, b, c } = objABC
参数匹配 function g ({ name: n, val: v }) {}
extends继承(本质还是构造函数加原型链继承,使用super超类调用父级的对象属性方法等)
新增数据类型:Symbol 类型、Set 类型、Map 类型、WeakSet 类型、WeakMap 类型、TypedArray 类型(这个自行百度)
原有内置对象 API 增强(列举几个常用的)
(1)Object.assign(target, source,...) 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
target目标对象,source源对象
(2)Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
Array.of()和Array构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而Array(7)创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,而不是由7个undefined组成的数组)。
Array.of(7);// [7]
Array.of(1,2,3);// [1, 2, 3]
Array(7);// [ , , , , , , ]
Array(1,2,3);// [1, 2, 3]
语法:Array.of(element0[,element1[, ...[,elementN]]]);
elementN:任意个参数,将按顺序成为返回数组中的元素。
(3)Array.prototype.values()
values() 方法返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值
const array1 = ['a', 'b', 'c'];
const iterator = array1.values();
for (const value of iterator) {
console.log(value);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"