成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ES14中五個最具變革性的JavaScript特性

開發 前端
JavaScript在過去10年里取得了長足的進步,每年都有全新的功能升級。 讓我們來看看ES14(2023年)中引入的5個最重要的特性,看看你是否錯過了其中一些。

JavaScript在過去10年里取得了長足的進步,每年都有全新的功能升級。 讓我們來看看ES14(2023年)中引入的5個最重要的特性,看看你是否錯過了其中一些。

1. toSorted()

甜美的語法糖。

ES14的toSorted()方法使得排序數組并返回一個副本而不改變原數組變得更加容易。

以前我們這樣做:

const numbers = [3, 1, 4, 1, 5];
const sorted = [...numbers].sort((a, b) => a - b);
console.log(sorted); // [1, 1, 3, 4, 5]
console.log(numbers); // [3, 1, 4, 1, 5]

現在我們可以這樣做?:

const numbers = [3, 1, 4, 1, 5];
const sorted = numbers.toSorted((a, b) => a - b);
console.log(sorted); // [1, 1, 3, 4, 5]
console.log(numbers); // [3, 1, 4, 1, 5]

toSorted()接受一個回調函數來控制排序行為 - 升序或降序,按字母順序或數字順序。就像sort()一樣。

2. toReversed()

另一個新的數組方法,用于促進不可變性和函數式編程。

以前 — 使用reverse() ?:

const numbers = [1, 2, 3, 4, 5];
const reversed = numbers.reverse();
console.log(reversed); // [5, 4, 3, 2, 1]
console.log(numbers); // [5, 4, 3, 2, 1]

現在 — 使用toReversed() ?:

const numbers = [1, 2, 3, 4, 5];
const reversed = numbers.toReversed();
console.log(reversed); // [5, 4, 3, 2, 1]
console.log(numbers); // [1, 2, 3, 4, 5]

我發現這些不可變方法非常棒,可以不斷地鏈式調用方法,而不用擔心原始變量:

const result = numbers.toReversed().toSorted((a, b) => a - b);

3. toSpliced()

函數式編程愛好者無疑會對所有這些新的數組方法感到高興。 這是.splice()的不可變版本:

const items = [1, 2, 3, 4, 5];
const newItems = items.toSpliced(2, 1, 6, 7);
console.log(newItems); // [1, 2, 6, 7, 4, 5]
console.log(items); // [1, 2, 3, 4, 5]

4. 從末尾開始查找數組

從第一項開始搜索并不總是理想的:

你可以很容易地看到,對我們的巨大列表從末尾而不是開始搜索會快得多。

有時你必須從末尾搜索才能讓你的程序工作。

比如我們想在一個數字列表中找到最后一個偶數,find和findIndex會非常不準確。 調用reverse()也不行,即使它會很慢:

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const lastEven = numbers.reverse().find(n => n % 2 === 0);
console.log(lastEven); // 10(不正確)

所以在這種情況下,findLast()和findLastIndex()方法就派上用場了。

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const lastEven = numbers.findLast(n => n % 2 === 0);
console.log(lastEven); // 10(正確)

這段代碼更短、更易讀。最重要的是,它產生了正確的結果。

5. 數組的with()方法

with()是我們快速更改數組元素而不進行任何突變的方法。

以前的常規方式:

const arr = [1, 2, 3, 4, 5];
const newArr = [...arr];
newArr[2] = 6;
console.log(newArr); // [1, 2, 6, 4, 5]
console.log(arr); // [1, 2, 3, 4, 5]

ES14現在讓我們這樣做:

const arr = [1, 2, 3, 4, 5];
const newArr = arr.with(2, 6);
console.log(newArr); // [1, 2, 6, 4, 5]
console.log(arr); // [1, 2, 3, 4, 5]

最后的思考

還有其他特性,但ES14主要是關于更容易的函數式編程和內置的不可變性。 隨著React的興起,我們看到聲明式JavaScript爆炸式地流行起來;很自然地,更多的這些特性會被烘焙到語言中,成為甜美的語法糖。

責任編輯:姜華 來源: 大遷世界
相關推薦

2024-06-14 10:22:55

2024-07-30 08:40:00

2024-07-25 08:37:48

2024-08-01 08:38:59

2025-03-04 10:03:47

2024-08-16 09:14:53

2024-07-17 13:43:04

2023-11-23 10:21:11

ECMAScriptJavaScript

2024-08-19 08:35:11

2022-08-05 13:14:25

ES2022JavaScript代碼

2022-09-30 14:00:50

JavaScrip新特性代碼

2022-05-25 07:22:07

ES12JavaScript語言

2024-08-05 08:38:13

2019-12-12 20:49:05

JavaScript語言運算符

2021-10-09 07:10:31

JavaScript對象Python

2024-05-07 00:00:00

工具類開發者功能

2022-08-10 06:07:36

建筑物聯網

2020-05-18 10:52:00

前端JavaScript html

2023-04-19 15:26:52

JavaScriptES13開發

2023-11-24 16:23:12

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99精品久久久 | 中文字幕亚洲欧美日韩在线不卡 | 欧美成人一区二免费视频软件 | 日一区二区三区 | 免费电影av | 日韩av在线免费 | 新疆少妇videos高潮 | 欧美成人第一页 | 国产黄色大片在线免费观看 | 精品国产乱码久久久久久88av | 欧美精品一区二区三区在线播放 | 超碰成人av| 中文字幕国产 | 中文字幕蜜臀 | 中文亚洲字幕 | 国产高清在线精品一区二区三区 | 国产ts人妖系列高潮 | 日韩在线观看中文字幕 | 久久精品国产久精国产 | 国产丝袜一区二区三区免费视频 | 亚洲激情一区二区三区 | 青青草av | 久久精品国产一区二区电影 | 精品久久久久国产免费第一页 | 99精品欧美一区二区三区 | 久久综合久色欧美综合狠狠 | 亚洲精品久久久一区二区三区 | 亚洲国产成人精品久久久国产成人一区 | 久久人人爽人人爽 | 欧美一区二区大片 | 国产精品视频一二三 | 青青久久 | 一区二区在线免费观看视频 | av在线免费不卡 | 国产电影一区二区在线观看 | 91看片免费| 久久久91精品国产一区二区三区 | 国产精品毛片一区二区在线看 | 夜夜爽99久久国产综合精品女不卡 | 久久久久久亚洲国产精品 | 六月色婷 |