ECMAScript 2019(ES10)主要新特性深刻講解

「本文已參與好文召集令活動,點擊查看:後端、大前端雙賽道投稿,2萬元獎池等你挑戰!前端

2019年6月,ECMA 協會正式推出了 ES 的第十個版本,也就是 ES10,它一共帶來了 6 個新特性,讓咱們來深刻了解一下。web

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() 方法還能夠用來去除數組的空值。示例:markdown

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 是經過對象解析成鍵值對。示例: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'] ]
複製代碼

String 的新方法 trimStart和trimEnd

這個很容易理解,就是去除字符串開頭或結尾的空白串。ui

可訪問的Symbol的description屬性

構建 Symbol 的時候多了一個參數description,方便咱們訪問 Symbol 的description屬性。示例:url

const symDemo = Symbol('Thanks');

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

// 如今
console.log(symDemo.description); // Thanks
複製代碼

可忽略的catch參數

以往使用 try catch 捕獲異常的時候,catch 必需要傳入參數,在有些場景,異常顯得不那麼重要,所以,ES10 中 catch 參數變得可選了。示例:spa

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


// 如今
try {} catch{}
複製代碼

寫在最後

寫做不易,但願能夠得到你的一個「贊」。若是文章對你有用,能夠選擇「收藏」。 若有文章有錯誤或建議,歡迎評論指正,謝謝你。❤️

歡迎閱讀其它文章

相關文章
相關標籤/搜索