浅记ES6的一些语法 | 青训营笔记

87 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

有许多的ES6语法容易忘记在这里做一个整合

1.for in 和 for of

for in 的key可以得到遍历数组的每一项的索引,而for of可以得到每一项的索引和每一项的值。并且for of对于对象是没有用的,for of是对于可迭代对象才有用(数组、Set、Map)

2.Object.keys和Object.values

for of不能得到对象的每个属性值,要想获得一个对象的所有属性我们在之前可以使用Object.getOwnPropertyNames(),在Es6我们可以使用Object.keys()来达到同样的效果将对象的属性弄成一个数组而Object.values()就可以得到一个对象属性值的一个数组

3.Set和Map

Set提供了add、delete、has、size的方法分别使添加、删除、查询、尺寸。要将Set变为数组可以使用Array.from(set)或者使用扩展运算符[...set]。对于有重复的数组我们要把其变成不重复的数组可以使用Set。[...New Set(arr)].注意:如果数组里面有两个相同对象因为两个对象指针不同不会将其去重,如果使NaN的话会将其去重

Map的创建方式是通过set方法例如map.set(true,123)这样set一个键值对。也可以通过数组来创建不过数组格式有规格。例如New Map([[true,123],['hh',123]])这样的方式来创建一个Map。Map还有hasgetdelete查询、获取和删除的方法

4.模板字符串

通过 ` `来赋值,通过${data}来获取变量,就不要字符串的拼接十分方便

5.可选链

我们在if判断里面要写先判断数组存在在判断数组的长度不为0的操作在以前我们是这么写arr&&arr.length现在我们可以这么写arr?.length这样通过可选链便可以实现先判断前一个在判断后面的这样的操作,同样也可以用在对象和函数身上

6.reduce

我们要实现一个数组对其每一项进行累加,在以前我们会循环把每一项加起来,写起来就很繁琐。现在我们可以通过Es6的reduce来很方便的实现。如下:

let arr=[1,2,3,4];
let start = 0;
arr.reduce((pre,next)=>{
    return pre+next;
},start)

这样几行代码我们便实现了累加的操作,pre是指之前操作最后的值,next是数组下一位的值,我们可以设置初始值也就是start

7.求幂运算符

求一个数的几次方我们可以通过Math的pow方法来实现例如Math.pow(3,100)这样计算3的一百次方

8.includes

在之前可以使用indexOf来索引数组有没有一个值,但在之前indexOf并不能判断出是否含有NaN,而Es6我们可以使用includes来查找,它可以判断是否有NaN