「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!」前端
2019年6月,ECMA 协会正式推出了 ES 的第十个版本,也就是 ES10,它一共带来了 6 个新特性,让咱们来深刻了解一下。web
Array 数组新增了两个新的方法,分别是flat和flatMap。用于数组的降维和遍历。后端
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() 方法还能够用来去除数组的空值。示例:markdown
const arr = [1, , 3,];
arr.flat(); // [1, 3]
复制代码
与 Array.prototype.map()
相同,都用于遍历数组,使用映射函数映射每个元素,但一般 flatMap 效率会高一些。示例:函数
const arr = [1, 2, 3, 4, 5, 6];
arr.flatMap(x => [++x]); // [2, 3, 4, 5, 6, 7]
复制代码
与Object.entries()
相反,fromEntries 经过指定的键值建立对象,而 entries 是经过对象解析成键值对。示例:post
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'] ]
复制代码
这个很容易理解,就是去除字符串开头或结尾的空白串。ui
构建 Symbol 的时候多了一个参数description
,方便咱们访问 Symbol 的description
属性。示例:url
const symDemo = Symbol('Thanks');
// 之前
console.log(String(symDemo)); // Symbol(Thanks)
// 如今
console.log(symDemo.description); // Thanks
复制代码
以往使用 try catch 捕获异常的时候,catch 必需要传入参数,在有些场景,异常显得不那么重要,所以,ES10 中 catch 参数变得可选了。示例:spa
// 之前
try {} catch(e) {}
// 如今
try {} catch{}
复制代码
写做不易,但愿能够得到你的一个「赞」。若是文章对你有用,能够选择「收藏」。 若有文章有错误或建议,欢迎评论指正,谢谢你。❤️