「本文已參與好文召集令活動,點擊查看:後端、大前端雙賽道投稿,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{}
複製代碼
寫做不易,但願能夠得到你的一個「贊」。若是文章對你有用,能夠選擇「收藏」。 若有文章有錯誤或建議,歡迎評論指正,謝謝你。❤️