ECMAScript 2020
JavaScript sürüm numarası
Eski JS sürümleri rakamlarla adlandırılmıştır: ES5 (2009) ve ES6 (2015).
2016 yılından beri sürümler yıllara göre adlandırılmıştır: ECMAScript 2016, 2017, 2018, 2019, ...
ES2020'deki yeni özellikler:
- BigInt
- Dizgi yöntemi matchAll()
- Boş değer birleştirme işleci (??)
- Opsiyonel zincir işleci (?.)
- Mantıksal AND atama işleci (&&=)
- Mantıksal OR atama işleci (||=)
- Boş değer birleştirme atama işleci (??=)
- Promise.allSettled()
- Dinamik içe aktarma
Uyarı
Bu özellikler nispeten yeni.
Eski tarayıcılar için alternatif kod (Polyfill) gerekebilir.
JavaScript BigInt
JavaScript BigInt değişkenleri, normal JavaScript sayılarıyla temsil edilemeyen çok büyük tam sayı değerlerini saklamak için kullanılır.
JavaScript tam sayıları en fazla 15 hanelik olabilmektedir.
Tam sayı örneği
let x = 999999999999999; let y = 9999999999999999; // Çok büyük
BigInt örneği
let x = 9999999999999999; let y = 9999999999999999n;
BigInt oluşturmak için n
Tam sayı sonuna eklemek veya BigInt() çağırmak:
实例
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
BigInt'in JavaScript türü "bigint"dir:
实例
let x = BigInt(999999999999999); let type = typeof x;
2020 Eylül'den beri tüm modern tarayıcılar BigInt'i destekliyor:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
2018 年 5 月 | 2020 年 1 月 | 2019 年 7 月 | 2020 Yılı Eylül | 2018 年 6 月 |
JavaScript String Methodu matchAll()
在 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 | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 年 1 月 | 2020 Yılı Mart | 2020 Yılı Mart |
可选链运算符(Optional Chaining Operator)(?. 运算符)
如果对象为 undefined
或 null
,则可选链运算符返回 undefined
(而不是抛出错误)。
实例
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
自 2020 年 3 月以来,所有现代浏览器都支持 ?.=
Operatörler:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 Yılı Mart | 2020 Yılı Mart | 2020 Yılı Mart |
Mantıksal AND Atama Operatörü (&&= Operatörü)
逻辑 AND 赋值运算符用于两个值之间。
如果第一个值为 true
ise ikinci değeri atar.
逻辑 AND 赋值实例
let x = 100; x &&= 5;
2020 Yılı Eylül'den beri tüm modern tarayıcılar tarafından desteklenmektedir &&=
Operatörler:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
2020 Yılı Ağustos | 2020 Yılı Ağustos | 2020 Yılı Mart | 2020 Yılı Eylül | 2020 Yılı Eylül |
逻辑 OR 赋值运算符(||= 运算符)
逻辑 OR 赋值运算符用于两个值之间。
如果第一个值为 false
ise ikinci değeri atar.
逻辑 OR 赋值实例
let x = 10; x ||= 5;
2020 Yılı Eylül'den beri tüm modern tarayıcılar tarafından desteklenmektedir ||=
Operatörler:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
2020 Yılı Ağustos | 2020 Yılı Ağustos | 2020 Yılı Mart | 2020 Yılı Eylül | 2020 Yılı Eylül |
Boş Değer Birleştirme Atama Operatörü (??= Operatörü)
Boş Değer Birleştirme Atama Operatörüiki değer arasında kullanılır. (Nullish Coalescing Assignment Operator)
ilk değeri undefined
veya null
ise ikinci değeri atar.
Boş Değer Birleştirme Atama Örneği
let x = 10; x ??= 5;
2020 Yılı Eylül'den beri tüm modern tarayıcılar tarafından desteklenmektedir ??=
Operatörler:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
2020 Yılı Ağustos | 2020 Yılı Ağustos | 2020 Yılı Mart | 2020 Yılı Eylül | 2020 Yılı Eylül |