ECMAScript 2019(ES10)主要新特性深入讲解

1,908 阅读2分钟

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

2019年6月,ECMA 协会正式推出了 ES 的第十个版本,也就是 ES10,它一共带来了 6 个新特性,让我们来深入了解一下。

Array的新方法flat和flatMap

Array 数组新增了两个新的方法,分别是flat和flatMap。用于数组的降维和遍历。

Array.prototype.flat()

flat() 方法会遍历数组,并根据可选的深度参数将数组降维合并,将返回一个新的数组。示例:

const arr = [1, 2, 3, [1, 2, 3]];
arr.flat(); // [1, 2, 3, 1, 2, 3]


const arr1 = [1, 2, 3, [1, 2, 3, [1, 2, 3]]];
arr1.flat(); // [1, 2, 3, 1, 2, 3, [1, 2, 3]]


// 指定深度,若不指定,默认为 1
const arr2 = [1, 2, 3, [1, 2, 3, [1, 2, 3]]];
arr2.flat(2); // [1, 2, 3, 1, 2, 3, 1, 2, 3]

除此之外,flat() 方法还可以用来去除数组的空值。示例:

const arr = [1, , 3,];
arr.flat(); // [1, 3]

Array.prototype.flatMap()

Array.prototype.map() 相同,都用于遍历数组,使用映射函数映射每一个元素,但通常 flatMap 效率会高一些。示例:

const arr = [1, 2, 3, 4, 5, 6];
arr.flatMap(x => [++x]); // [2, 3, 4, 5, 6, 7]

Object 的新方法 fromEntries

Object.entries()相反,fromEntries 通过指定的键值创建对象,而 entries 是通过对象解析成键值对。示例:

const arr = [ ['user', 'Sam'], ['sex', '1'], ['year', '1996'] ];
const obj = Object.fromEntries(arr); 
// {user: "Sam", sex: "1", year: "1996"}
const obj = {user: "Sam", sex: "1", year: "1996"};
const arr = Object.entries(obj)
// [ ['user', 'Sam'], ['sex', '1'], ['year', '1996'] ]

String 的新方法 trimStart和trimEnd

这个很容易理解,就是去除字符串开头或结尾的空白串。

可访问的Symbol的description属性

构建 Symbol 的时候多了一个参数description,方便我们访问 Symbol 的description属性。示例:

const symDemo = Symbol('Thanks');

// 以前
console.log(String(symDemo)); // Symbol(Thanks)

// 现在
console.log(symDemo.description); // Thanks

可忽略的catch参数

以往使用 try catch 捕获异常的时候,catch 必须要传入参数,在有些场景,异常显得不那么重要,因此,ES10 中 catch 参数变得可选了。示例:

// 以前
try {} catch(e) {}


// 现在
try {} catch{}

写在最后

写作不易,希望可以获得你的一个「赞」。如果文章对你有用,可以选择「收藏」。 如有文章有错误或建议,欢迎评论指正,谢谢你。❤️

欢迎阅读其它文章