ES14 中最具變革性的五個(gè) JavaScript 特性
在過去的 10 年里,JavaScript 已經(jīng)取得了長足的進(jìn)步,每個(gè)版本都有全新的功能升級(jí)。
我們來看看 ES14(2023)中到來的 5 個(gè)最重要的特性;并看看你錯(cuò)過了哪些。
toSorted()
toSorted() 方法使得對(duì)數(shù)組進(jìn)行排序并返回一個(gè)不發(fā)生變異的副本變得更加容易。
不用這樣做:
現(xiàn)在可以做到這一點(diǎn):
圖片
toSorted() 接受一個(gè)回調(diào)來控制排序行為 - 升序或降序,字母或數(shù)字。就像 sort() 一樣。
toReversed()
另一個(gè)新的 Array 方法用于促進(jìn)不變性和函數(shù)式編程。
之前 reverse() ?:
圖片
現(xiàn)在 - 有 toReversed() ?:
圖片
不可變的方法非常棒,可以不斷地鏈?zhǔn)秸{(diào)用方法,而不用擔(dān)心原始變量:
圖片
toSpliced()
這是 .splice() 的不可變副本:
圖片
從最后開始查找數(shù)組
從第一項(xiàng)開始搜索并不總是理想的:
圖片
可以輕易看出,相比從頭開始,我從我們龐大列表的末尾開始搜索會(huì)快得多。
圖片
就像我們想在一系列數(shù)字中找到最后一個(gè)偶數(shù), find 和 findIndex 將會(huì)非常不準(zhǔn)確。
圖片
并且調(diào)用 reverse() 也不會(huì)起作用,即使它會(huì)很慢:
圖片
所以在像 findLast() 和 findLastIndex() 方法派上用場(chǎng)的情況下。
圖片
這段代碼更短,更易讀。最重要的是,它得到了正確的結(jié)果。
Array with() 方法
with() 是我們快速更改數(shù)組元素而完全不進(jìn)行變異的方式。而不是這種常規(guī)方式:
圖片
ES14:
圖片
總結(jié)
隨著 React 的崛起,我們看到聲明式 JavaScript 在受歡迎程度上猛增;更多的這樣的元素以甜美的語法糖的形式內(nèi)置在語言中也是理所當(dāng)然的。
它們有其他特性,但 ES14 全都是關(guān)于更簡(jiǎn)單的函數(shù)式編程和內(nèi)置的不變性。