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

七個新的ES2022 JavaScript 功能,你千萬不要錯過了

開發(fā) 前端
這些功能已經(jīng)發(fā)布了一段時間,現(xiàn)在讓我們一起來看一下!

?1.私有字段

以前,必須在構(gòu)造函數(shù)中定義所有類字段。而且沒有私人領(lǐng)域, 所有字段都可以從外部訪問。當(dāng)然,有一些技巧范圍使一些變量無法訪問。但是,讓我們不要談?wù)撍麄儭?/p>

class Counter {
constructor() {
this.name = 'Counter';
this.count = 0;
}


inc() {
this.count++;
}
}

現(xiàn)在我們可以簡單地寫:

class Counter {
name = 'Counter';
#count = 0; // private field!
inc() {
this.#count++;
}
}

2.使用關(guān)鍵字檢查訪問私有字段?

私人領(lǐng)域帶來了一些問題。當(dāng)在沒有該對象上訪問私有字段時,將拋出錯誤。但是如何檢查對象是否有?使用嘗試/捕獲!

現(xiàn)在有一個更好的方法:in關(guān)鍵字中。

class Counter {
name = 'Counter';
#count = 0;
static isCounter(obj) {
return #count in obj;
}
}
const counter = new Counter();
Counter.isCounter(counter); // true

3. at()方法的數(shù)組和字符串

我們可以通過編寫[i]來訪問位置A[i]的數(shù)組的項目。但是,如果我是負(fù)的,并且我們想從數(shù)組的末端獲得元素怎么辦?我們可以編寫[a.length + i]。但這不是很方便。另一種方法是使用A.slice(i)[0]。但這不是很有效。

為此有at()方法:

const A = [2, 4, 6, 8, 10]
A.at(-1) // 10
const S = "Hello World"
S.at(-1) // 'd'

4.使用 findLast() 從數(shù)組的末尾開始查找一個項目

如何在數(shù)組中找到一個項目?使用find()方法。以及如何從最后找到?使用reverse()和find(),或者編寫自己的函數(shù):

const A = [1, 20, 3, 40, 5];
function findBackward(A, predicate) {
for (let i = A.length-1; i>=0; i--) {
if (predicate(A[i])) {
return A[i];
}
}
return -1;
}
findBackward(A, x => x % 10 == 0); // 40
// be careful with this method!
A.reverse().find(x => x % 10 == 0); // 40

現(xiàn)在,我們可以使用Findlast()和FindlastIndex()方法:

const A = [1, 20, 3, 40, 5];
A.find(v => v%10 == 0) // 20
A.findLast(v => v%10 == 0) // 40
A.findIndex(v => v%10 == 0) // 1
A.findLastIndex(v => v%10 == 0) // 3
A.findLastIndex(v => v == 0) // -1

5.讓我們使用Hasown()而不是HasownProperty()

有object.prototype.hasownproperty()方法來檢查對象是否具有屬性為其直接屬性。但是使用很麻煩:

let hasOwnProperty = Object.prototype.hasOwnProperty;
if (hasOwnProperty.call(object, 'foo')) {
console.log('has property foo');
}

但是,我們現(xiàn)在可以這樣寫:

object.hasOwnProperty('foo')

請記住,JavaScript是一種動態(tài)語言。我們可以將屬性添加到任何對象。因此,HasownProperty()可以被具有相同名稱的對象的屬性遮蔽。為了避免這種情況,我們可以使用Hasown()方法:

if (Object.hasOwn(object, 'foo')) {
console.log('has property foo');
}

6.原因是一個錯誤的新屬性

看到這樣的錯誤處理代碼非常常見:

await fetch('https://example.com/data.csv')
.catch((err) => {
throw new Error('failed to get: ' + err.message);
})

它的作用是將原始錯誤用新錯誤包裹,但是原始錯誤丟失了。現(xiàn)在,我們可以使用原因?qū)傩源鎯υ煎e誤并稍后檢索:

await fetch('https://example.com/data.csv')
.catch((err) => {
throw new Error('failed to get', { cause: err })
})
.catch((err) => {
console.log('cause', err.cause)
})

7.#!Hashbang現(xiàn)在得到支持

Hashbang現(xiàn)在得到了支持, 我們可以直接在終端運(yùn)行nodejs腳本:

#!/usr/bin/env node
'use strict';
console.log(1);

或者:

#!/usr/bin/env node
export {};
console.log(1);

總結(jié)

以上就是我今天與你分享的7個有關(guān)ES2022的新功能,希望對你有所幫助,也希望你能從中學(xué)到新的知識。

最后,感謝你的閱讀。

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2022-08-05 13:14:25

ES2022JavaScript代碼

2013-05-31 15:57:59

Windows 8.1

2020-09-01 15:10:15

編程CSSJava

2023-04-11 16:31:10

開發(fā)React 庫Web

2023-07-13 10:30:18

CIOIT組織

2022-01-19 11:48:21

安全開源工具

2023-03-19 16:02:33

JavaScrip技巧編程語言

2023-09-07 16:28:46

JavaScrip

2021-10-08 08:00:00

Java開發(fā)功能

2022-12-04 22:47:49

Linux 發(fā)行版Linux

2024-08-13 08:00:00

2024-08-16 09:14:53

2021-08-17 10:08:44

HTML網(wǎng)站網(wǎng)絡(luò)

2023-04-09 23:37:31

JavaScript開發(fā)

2022-03-09 08:14:24

CSS容器container

2024-01-09 18:01:38

2024-01-31 12:13:02

JavaScriptSet元素

2021-02-06 10:27:51

Linux發(fā)行版操作系統(tǒng)

2016-11-02 10:03:51

Linux雙引導(dǎo)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 免费看a | 欧美一级二级三级视频 | 久久久久久国产精品免费免费狐狸 | 男人的天堂久久 | 精品精品 | 欧美日韩在线成人 | 一级高清免费毛片 | 国产精品国产三级国产aⅴ中文 | 国产成人精品一区二区三区网站观看 | 国产精品免费一区二区三区四区 | 亚洲成人午夜电影 | 在线播放精品视频 | 欧美激情一区二区三区 | 久久在线精品 | 国产一区二区久久 | 精品九九 | 国产精品视频在线观看 | 久久久精品国产 | 男人久久天堂 | 一区二区三区精品视频 | 国产国拍亚洲精品av | 日韩国产精品一区二区三区 | 午夜理伦三级理论三级在线观看 | 日本欧美在线视频 | 欧美日韩一区在线播放 | 中文天堂网 | 精品伊人久久 | 亚洲精品视频在线看 | 国产精彩视频 | 久久99精品国产 | 在线亚洲电影 | 黑人久久久 | 国产色婷婷精品综合在线手机播放 | 欧美激情精品久久久久久 | 新超碰97 | 久久精品视频网站 | 欧美国产日韩在线观看 | 精品亚洲一区二区三区 | 中文字幕日韩一区二区 | 99久久久久久 | 超碰欧美 |