数组扩展
1.includes()方法,参数为要检测的值。includes方法有点像indexOf(),indexOf未检测到则返回-1,否则返回下标。includes则是返回true或false。includes可以检测NaN。第二个参数表示从什么位置检测。
2.flat和flatMap。flat负责把数组拉平,意思是一个二维数组调用flat方法会变成一维数组。参数传的是数组的维度。例如传2则表示将3维拉成1维。如果数组中有空位则跳过。flatMap有点像flat方法和Map方法的结合。先对每个成员执行一次map操作,然后再拉平。默认拉平一层。
3.ES6将空位转成undefined。遍历也会遍历空位。尽量避免出现空位。(如[,,,]这种就是空位)
对象扩展
const foo = ‘bar‘; const baz = {foo}; baz // {foo: "bar"} // 等同于 const baz = {foo: foo};
1.ES6中可以将变量和函数直接写入到对象中作为对象的数组和方法。方法名可以简写,如someFunction:function(){}可以简写成someFunction(){}。简写的函数不能被当做构造函数使用。
2.ES6允许在定义对象的属性名使用表达式定义,如[‘a‘+‘bc‘](这是一个对象的属性)= true(一个对象的值)。
3.函数的name属性可以返回函数名,如果是有访问器属性例如getter和setter则需要在描述对象get和set上调用name方法。构造函数name属性返回anonymous,bind方法返回bound 函数名。
4.对象的每个属性都有一个描述对象用于控制该属性的行为。分别是value,writable,enumerable,configurable。尽量用object.keys()代替for..in遍历,因为遍历会引入继承的问题。
5.this指向函数所在的当前对象,新的super指向当前对象的原型对象。只有使用对象方法的简写可以使用super否则报错。
原文地址:https://www.cnblogs.com/harrywu96/p/12172732.html