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 月 |