ES6浅谈--数组扩展对象扩展

Posted harrywu96

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6浅谈--数组扩展对象扩展相关的知识,希望对你有一定的参考价值。

数组扩展

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否则报错。

以上是关于ES6浅谈--数组扩展对象扩展的主要内容,如果未能解决你的问题,请参考以下文章

ES6浅谈--解构,字符串扩展

es6数组的扩展

ES6数组和对象的扩展

ES6浅谈 -- 数值扩展,函数扩展

003-正则的扩展数值的扩展函数的扩展数组的扩展对象的扩展

ES6随笔--各数据类型的扩展--数组和对象