ECMAScript 2022

JavaScript 版本号

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

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

ES2022 的新特性

警告:

这些特性相对较新。

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

JavaScript Array at()

ES2022 引入了数组方法 :

ਉਦਾਹਰਣ 1

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

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

ਸਵੈ ਮੋਹਬਤ ਕਰਕੇ ਪ੍ਰਯੋਗ ਕਰੋ

ਉਦਾਹਰਣ 2

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

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

ਸਵੈ ਮੋਹਬਤ ਕਰਕੇ ਪ੍ਰਯੋਗ ਕਰੋ

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

Chrome Edge Firefox Safari Opera
Firefox 90
2021 年 4 月

注意:

许多语言允许使用负索引(如 [-1])访问对象/数组/字符串的末尾元素。

ਇਹ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਸੰਭਵ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਇਹ ਮੇਥਡ ਇਕੱਠੇ ਸ਼ਾਮਲ ਹਨ ਅਤੇ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ।obj[-1] ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕੀ-1 ਦਾ ਮੁੱਲ ਹੈ ਨਹੀਂ ਕਿ ਆਖਰੀ ਗੁਣ

ਇਹ ਮੇਥਡ ES2022 ਵਿੱਚ ਪ੍ਰਵੇਸ਼ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ ਕਿ ਇਹ ਸਮੱਸਿਆ ਹੱਲ ਕੀਤੀ ਜਾ ਸਕੇ

JavaScript String at()

ES2022 ਨੇ ਸਟ੍ਰਿੰਗ ਮੇਥਡ ਦਾ ਪ੍ਰਵੇਸ਼ ਕੀਤਾ :

ਉਦਾਹਰਣ 1

ਨਾਮ ਚਿੰਨ੍ਹ ਸਟ੍ਰਿੰਗ ਦੀ ਤੀਜੀ ਅੱਕਸ਼ਰ ਪ੍ਰਾਪਤ ਕਰੋ:


let letter = name.at(2);

ਸਵੈ ਮੋਹਬਤ ਕਰਕੇ ਪ੍ਰਯੋਗ ਕਰੋ

ਉਦਾਹਰਣ 2

ਨਾਮ ਚਿੰਨ੍ਹ ਸਟ੍ਰਿੰਗ ਦੀ ਤੀਜੀ ਅੱਕਸ਼ਰ ਪ੍ਰਾਪਤ ਕਰੋ:



ਸਵੈ ਮੋਹਬਤ ਕਰਕੇ ਪ੍ਰਯੋਗ ਕਰੋ

Chrome Edge Firefox Safari Opera
Firefox 90
2021 年 4 月



ਸਵੈ ਮੋਹਬਤ ਕਰਕੇ ਪ੍ਰਯੋਗ ਕਰੋ


ਸਵੈ ਮੋਹਬਤ ਕਰਕੇ ਪ੍ਰਯੋਗ ਕਰੋ

 
   
 
  ਥਰਾਊ ਨਵੀਂ ਰਿਟਰਨ (\ 
}

ਸਵੈ ਮੋਹਬਤ ਕਰਕੇ ਪ੍ਰਯੋਗ ਕਰੋ

ਜਾਵਾਸਕ੍ਰਿਪਟ ਅਵੇਈਟ ਇਮਪੋਰਟ

ਜਾਵਾਸਕ੍ਰਿਪਟ ਮੌਡਿਊਲ ਹੁਣ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਤੇਮਾਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ:

ਇਮਪੋਰਟ {ਮਾਈਡਾਟਾ} ਵੱਲੋਂ './ਮਾਈਡਾਟਾ.ਜ਼ਸ';
ਕੰਸਟ ਡਾਟਾ = ਅਵੇਈਟ ਮਾਈਡਾਟਾ();

ਜਾਵਾਸਕ੍ਰਿਪਟ ਕਲਾਸ ਫੀਲਡ ਐਲਾਨ

class Hello {
  ਕੌਂਟਰਰ = 0; // ਕਲਾਸ ਫੀਲਡ
}
const myClass = new Hello();
ਲਿਟ ਐਕਸ = ਮਾਈਕਲਾਸ.counter;

2021 ਸਤੰਬਰ ਤੋਂ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਊਜ਼ਰਾਂ ਵਿੱਚ ਕਲਾਸ ਫੀਲਡ ਐਲਾਨ ਸਮਰਥ ਹੋਈ ਹੈ:

Chrome Edge Firefox Safari Opera
ਚਰਾਮ 72 Edge 79 ਫਾਇਰਫਾਕਸ 69 Safari 14.1 ਓਪਰਾ 60
2019 ਜਨਵਰੀ 2020 年 1 月 2019 ਨਵੰਬਰ 2021 年 4 月 2020 年 1 月

JavaScript 私有方法和字

class Hello {
  #counter = 0;  // 私有字
  #myMethod() {} // 私有方法
}
const myClass = new Hello();
let x = myClass.#counter; // 错误
myClass.#myMethod();      // 错误

自 2021 年 6 月起,在所有现代浏览器中均支持私有方法和字:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
2019 年 4 月 2020 年 1 月 2021 年 6 月 2021 年 4 月 2019 年 6 月