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:

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

Kişisel olarak deneyin

BigInt örneği

let x = 9999999999999999;
let y = 9999999999999999n;

Kişisel olarak deneyin

BigInt oluşturmak için n Tam sayı sonuna eklemek veya BigInt() çağırmak:

实例

let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345);

Kişisel olarak deneyin

BigInt'in JavaScript türü "bigint"dir:

实例

let x = BigInt(999999999999999);
let type = typeof x;

Kişisel olarak deneyin

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");

Kişisel olarak deneyin

如果参数是正则表达式,则必须设置全局标志 (g),否则会抛出 TypeError。

实例

const iterator = text.matchAll(/Cats/g);

Kişisel olarak deneyin

如果要进行不区分大小写的搜索,则必须设置不区分大小写标志 (i):

实例

const iterator = text.matchAll(/Cats/gi);

Kişisel olarak deneyin

提示:ES2021 引入了字符串方法 replaceAll()。

空值合并运算符(Nullish Coalescing Operator)(?? 运算符)

如果第一个参数不是空值(nullundefined),则 ?? 运算符返回第一个参数。

否则返回第二个。

实例

let name = null;
let text = "missing";
let result = name ?? text;

Kişisel olarak deneyin

自 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)(?. 运算符)

如果对象为 undefinednull,则可选链运算符返回 undefined(而不是抛出错误)。

实例

const car = {type:"Fiat", model:"500", color:"white"};
let name = car?.name;

Kişisel olarak deneyin

自 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 赋值运算符用于两个值之间。

如果第一个值为 trueise ikinci değeri atar.

逻辑 AND 赋值实例

let x = 100;
x &&= 5;

Kişisel olarak deneyin

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 赋值运算符用于两个值之间。

如果第一个值为 falseise ikinci değeri atar.

逻辑 OR 赋值实例

let x = 10;
x ||= 5;

Kişisel olarak deneyin

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 nullise ikinci değeri atar.

Boş Değer Birleştirme Atama Örneği

let x = 10;
x ??= 5;

Kişisel olarak deneyin

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