ECMAScript 2022

JavaScript 版本号

旧的 ECMAScript 版本以数字命名:ES5 和 ES6。

从 2016 年开始,版本以年份命名:ES2016、2018、2020、2022。

ES2022 的新特性

警告:

这些特性相对较新。

旧版浏览器可能需要替代代码(Polyfill)。

JavaScript Array at()

ES2022 引入了数组方法 at():

Mivuno 1

获取 fruits 数组的第三个元素:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);

Tafuta tena

Mivuno 2

获取 fruits 数组的第三个元素:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];

Tafuta tena

at() 方法从数组中返回指定索引的元素。

at() 方法与 [] 返回的结果相同。

自 2022 年 3 月起,所有现代浏览器中均支持 at() 方法:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Aprili 2021 2021 年 7 月 2021 年 7 月 2022 年 3 月 2021 年 8 月

注意:

许多语言允许使用负索引(如 [-1])Kufikia elementi ya kina cha kawaida cha kifupi/kifaa/kifupi cha neno.

Hii inaonekana katika JavaScript kwa sababu [] Inayotumika kwa kufikia mafanikio ya jirani na majirani. obj[-1] inaonyesha thamani ya chaguo -1, na si muhimu wa kiwango cha uongozini wa kiwango cha kuzingatia kina cha kwanza cha kiwango cha kuzingatia.

at() Method inayotambua katika ES2022 ili kusaidia matokeo hii.

JavaScript String at()

ES2022 inayotambua method ya mawili wa neno at():

Mivuno 1

Pataza ya kupata heri ya kifupi cha kathika ya name:

const name = "W3Schools";
let letter = name.at(2);

Tafuta tena

Mivuno 2

Pataza ya kupata heri ya kifupi cha kathika ya name:

const name = "W3Schools";
let letter = name[2];

Tafuta tena

at() 方法从字符串中返回指定索引的字符。

at() 方法与 [] 返回的结果相同。

自 2022 年 3 月起,所有现代浏览器中均支持 at() 方法:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Aprili 2021 2021 年 7 月 2021 年 7 月 2022 年 3 月 2021 年 8 月

RegExp d 修饰符

ES2022 添加了 /d 修饰符,用于表示匹配的开始和结束。

Mfano

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);

Tafuta tena

RegExp 修饰符用于指定不区分大小写,以及其他全局搜索:

修饰符 描述 试一试
g 执行全局匹配(查找所有)。 试一试
i 执行不区分大小写的匹配。 试一试
d 执行子字符串匹配(ES2022 新增)。 试一试
m 执行多行匹配。 试一试

Object.hasOwn()

ES2022 提供了一种安全的方法来检查属性是否是对象的自有属性。

Object.hasOwn() 类似于 Object.prototype.hasOwnProperty,但支持所有对象类型。

Mfano

Object.hasOwn(myObject, age)

Tafuta tena

Kina cha Sababu

ES2022 inahofaa kufaa kwa kuzingatia kina cha kuzingatia sababu ya kosa:

Mfano

try { 
  connectData(); 
} 
  throw new Error("Connecting failed.", { cause: err }); 
}

Tafuta tena

JavaScript await import

Vifungu vya JavaScript vinaonesha kufaa kwa vifungu vya kina vya vifungu vilivyo kuingia kabla ya kumengenia:

import {myData} from './myData.js';
const data = await myData();

Vifungu vya kina vya JavaScript

class Hello {
  counter = 0; // vifungu vya kina
}
const myClass = new Hello();
let x = myClass.counter;

Kuanza Septemba 2021, zote vya kina msingi wa vifungu vilivyo kufaa kwa vifungu vya kina vya siku zote:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
2019 Januari Januari 2020 2019 Septemba Aprili 2021 Januari 2020

Mifano ya methodi na mahali ya kina ya JavaScript

class Hello {
  #counter = 0;  // Mahali ya kina
  #myMethod() {} // Methodi ya kina
}
const myClass = new Hello();
let x = myClass.#counter; // Kichukuli
myClass.#myMethod();      // Kichukuli

Kuanzia Juni 2021, kinasimamia barabara zisizofikia kwa vifaa vya kifaa vya kila zamani:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
Aprili 2019 Januari 2020 Juni 2021 Aprili 2021 Juni 2019