ECMAScript 2020
JavaScript 版本号
旧的 JS 版本以数字命名:ES5 (2009) 和 ES6 (2015)。
从 2016 年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019、...
ES2020 中的新特性:
- BigInt
- 字符串方法 matchAll()
- 空值合并运算符 (??)
- 可选链运算符 (?.)
- 逻辑 AND 赋值运算符 (&&=)
- 逻辑 OR 赋值运算符 (||=)
- 空值合并赋值运算符 (??=)
- Promise.allSettled()
- 动态导入
警告
这些特性相对较新。
较旧的浏览器可能需要替代代码(Polyfill)。
جاوا سکریپت بیگ اینٹ
JavaScript BigInt 变量用于存储太大而无法用普通 JavaScript 数字表示的大整数值。
JavaScript ਇੰਟੈਜਰ 15 ਅੰਕ ਤੱਕ ਸਹੀ ਹੋ ਸਕਦੇ ਹਨ。
ਇੰਟੀਜਰ ਇੰਸਟੈਂਸ
let x = 999999999999999; let y = 9999999999999999; // ਬਹੁਤ ਵੱਡਾ
BigInt ਇੰਸਟੈਂਸ
let x = 9999999999999999; let y = 9999999999999999n;
ਬਿਗਇੰਟ ਬਣਾਉਣ ਲਈ n
ਜੇਕਰ ਤੁਸੀਂ BigInt ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਪੂਰੇ ਅੰਕ ਦੇ ਅੰਤ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹੋ ਜਾਂ BigInt() ਫੰਕਸ਼ਨ ਕਰ ਸਕਦੇ ਹੋ:
实例
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
ਬਿਗਇੰਟ ਦਾ JavaScript ਟਾਈਪ "bigint" ਹੈ:
实例
let x = BigInt(999999999999999); let type = typeof x;
2020 ਸਤੰਬਰ ਤੋਂ ਲੈ ਕੇ ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਊਜ਼ਰ ਬਿਗਇੰਟ ਨੂੰ ਸਮਰਥਨ ਕਰਦੇ ਹਨ:
ਚਰਾਮ | ਐਂਜਲ | ਫਾਇਰਫਾਕਸ | ਸਫਾਰੀ | ਓਪੇਰਾ |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | ਸਫਾਰੀ 14 | Opera 54 |
2018 年 5 月 | 2020 年 1 月 | 2019 年 7 月 | 2020 ਸਤੰਬਰ | 2018 年 6 月 |
JavaScript ਸਟਰਿੰਗ ਮੈਥਡ ਮੈਚਅਲਸ
在 ES2020 之前,没有字符串方法方法可用于搜索字符串中所有出现的字符串。
实例
const iterator = text.matchAll("Cats");
如果参数是正则表达式,则必须设置全局标志 (g
),否则会抛出 TypeError。
实例
const iterator = text.matchAll(/Cats/g);
如果要进行不区分大小写的搜索,则必须设置不区分大小写标志 (i
):
实例
const iterator = text.matchAll(/Cats/gi);
提示:ES2021 引入了字符串方法 replaceAll()。
空值合并运算符(Nullish Coalescing Operator)(?? 运算符)
如果第一个参数不是空值(null
或 undefined
),则 ??
运算符返回第一个参数。
否则返回第二个。
实例
let name = null; let text = "missing"; let result = name ?? text;
自 2020 年 3 月以来,所有现代浏览器都支持 nullish 运算符:
ਚਰਾਮ | ਐਂਜਲ | ਫਾਇਰਫਾਕਸ | ਸਫਾਰੀ | ਓਪੇਰਾ |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 年 1 月 | 2020 ਮਾਰਚ | 2020 ਮਾਰਚ |
可选链运算符(Optional Chaining Operator)(?. 运算符)
如果对象为 undefined
或 null
,则可选链运算符返回 undefined
(而不是抛出错误)。
实例
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
自 2020 年 3 月以来,所有现代浏览器都支持 ?.=
ਆਪਰੇਟਰ:
ਚਰਾਮ | ਐਂਜਲ | ਫਾਇਰਫਾਕਸ | ਸਫਾਰੀ | ਓਪੇਰਾ |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 ਮਾਰਚ | 2020 ਮਾਰਚ | 2020 ਮਾਰਚ |
ਲਾਜਿਕ ਏਂਡ ਅਸਾਇੰਟ ਆਪਰੇਟਰ(&&= ਆਪਰੇਟਰ)
逻辑 AND 赋值运算符用于两个值之间。
如果第一个值为 true
ਜੇਕਰ ਪਹਿਲਾ ਮੁੱਲ ਖਾਲੀ ਹੋਵੇ
逻辑 AND 赋值实例
let x = 100; x &&= 5;
2020 ਸਤੰਬਰ ਤੋਂ ਬਾਅਦ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਊਜ਼ਰਾਂ ਨੇ ਇਸ ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ ਹੈ &&=
ਆਪਰੇਟਰ:
ਚਰਾਮ | ਐਂਜਲ | ਫਾਇਰਫਾਕਸ | ਸਫਾਰੀ | ਓਪੇਰਾ |
---|---|---|---|---|
ਚਰਾਮ 85 | ਐਂਜਲ 85 | ਫਾਇਰਫਾਕਸ 79 | ਸਫਾਰੀ 14 | ਓਪੇਰਾ 71 |
2020 ਅਗਸਤ | 2020 ਅਗਸਤ | 2020 ਮਾਰਚ | 2020 ਸਤੰਬਰ | 2020 ਸਤੰਬਰ |
逻辑 OR 赋值运算符(||= 运算符)
逻辑 OR 赋值运算符用于两个值之间。
如果第一个值为 false
ਜੇਕਰ ਪਹਿਲਾ ਮੁੱਲ ਖਾਲੀ ਹੋਵੇ
逻辑 OR 赋值实例
let x = 10; x ||= 5;
2020 ਸਤੰਬਰ ਤੋਂ ਬਾਅਦ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਊਜ਼ਰਾਂ ਨੇ ਇਸ ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ ਹੈ ||=
ਆਪਰੇਟਰ:
ਚਰਾਮ | ਐਂਜਲ | ਫਾਇਰਫਾਕਸ | ਸਫਾਰੀ | ਓਪੇਰਾ |
---|---|---|---|---|
ਚਰਾਮ 85 | ਐਂਜਲ 85 | ਫਾਇਰਫਾਕਸ 79 | ਸਫਾਰੀ 14 | ਓਪੇਰਾ 71 |
2020 ਅਗਸਤ | 2020 ਅਗਸਤ | 2020 ਮਾਰਚ | 2020 ਸਤੰਬਰ | 2020 ਸਤੰਬਰ |
ਖਾਲੀ ਮੁੱਲ ਮਿਲਾਣ ਆਪਰੇਟਰ(??= ਆਪਰੇਟਰ)
ਖਾਲੀ ਮੁੱਲ ਮਿਲਾਣ ਆਪਰੇਟਰਦੋ ਮੁੱਲਾਂ ਵਿਚਕਾਰ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ (Nullish Coalescing Assignment Operator)
ਜੇਕਰ ਪਹਿਲਾ ਮੁੱਲ undefined
ਜਾਂ ਬਿਨਾਂ ਮੁੱਲ null
ਜੇਕਰ ਪਹਿਲਾ ਮੁੱਲ ਖਾਲੀ ਹੋਵੇ
ਖਾਲੀ ਮੁੱਲ ਮਿਲਾਣ ਅਸਾਇੰਟ ਇੰਸਟੈਂਸ
let x = 10; x ??= 5;
2020 ਸਤੰਬਰ ਤੋਂ ਬਾਅਦ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਊਜ਼ਰਾਂ ਨੇ ਇਸ ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ ਹੈ ??=
ਆਪਰੇਟਰ:
ਚਰਾਮ | ਐਂਜਲ | ਫਾਇਰਫਾਕਸ | ਸਫਾਰੀ | ਓਪੇਰਾ |
---|---|---|---|---|
ਚਰਾਮ 85 | ਐਂਜਲ 85 | ਫਾਇਰਫਾਕਸ 79 | ਸਫਾਰੀ 14 | ਓਪੇਰਾ 71 |
2020 ਅਗਸਤ | 2020 ਅਗਸਤ | 2020 ਮਾਰਚ | 2020 ਸਤੰਬਰ | 2020 ਸਤੰਬਰ |