ECMAScript 2019

JavaScript sürüm numaraları

Eski JS sürümleri rakamsal adlandırılıyor: ES5 (2009) ve ES6 (2015).

2016 yılından itibaren sürümler yıllara göre adlandırılıyor: ECMAScript 2016, 2017, 2018, 2019, ...

ES2019'daki yeni özellikler:

Uyarı

Bu özellikler nispeten yeni.

Daha eski tarayıcılar için alternatif kod (Polyfill) gerekebilir

JavaScript Dizgi Metodu trimStart()

ES2019, JavaScript'e String yöntemi ekledi trimStart()

trimStart() Yöntemin çalışma şekli trim() Benzer, ancak sadece dize başındaki boşlukları siler.

Örnek

text1 = "     Hello World!     ";
text2 = text1.trimStart();

Kişisel Deneyim

2020 yılının Ocak ayından beri tüm modern tarayıcılar JavaScript String trimStart() destekliyor:

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
2018 Nisan 2020 Ocak 2018 Haziran 2018 Eylül 2018 Mayıs

JavaScript Dizgi Metodu trimEnd()

ES2019, JavaScript'e trimEnd() dize yöntemleri ile

trimEnd() Yöntemin çalışma şekli trim() Benzer, ancak sadece dize sonundaki boşlukları siler.

Örnek

text1 = "     Hello World!     ";
text2 = text1.trimEnd();

Kişisel Deneyim

2020 Ocak'tan beri tüm modern tarayıcılar JavaScript String trimEnd() desteği sağlar:

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
2018 Nisan 2020 Ocak 2018 Haziran 2018 Eylül 2018 Mayıs

JavaScript Nesne Metodu fromEntries()

ES2019, JavaScript'e fromEntries() Nesne yöntemleri.

fromEntries() Yöntem, döndürülebilir anahtar/değer çiftlerinden nesne oluşturur.

Örnek

const fruits = [
["armut", 300],
["armut", 900],
["elma", 500]
];
const myObj = Object.fromEntries(fruits);

Kişisel Deneyim

2020 Ocak'tan beri tüm modern tarayıcılar JavaScript Object fromEntries() desteği sağlar:

Chrome Edge Firefox Safari Opera
Chrome 73 Edge 79 Firefox 63 Safari 12.1 Opera 60
2019 Mart 2020 Ocak 2018 Ekim 2019 Mart 2019 Nisan

İsteğe Bağlı catch Bağlama

ES2019'dan itibaren, gerekirse catch parametresini atlayabilirsiniz:

Örnek

2019'dan önce:

try {
// kod
catch (err) {
// kod
}

2019'dan sonra:

try {
// kod
catch {
// kod
}

2020 Ocak'tan beri tüm modern tarayıcılar seçmeli catch bağlamını destekler:

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 58 Safari 11.1 Opera 53
2018 Nisan 2020 Ocak 2018 Ocak 2018 Mart 2018 Mayıs

JavaScript Dizi Metodu flat()

ES2019, JavaScript'e flat() Dizi yöntemleri.

flat() Yöntem, iç içe dizileri düzleştirerek yeni diziyi oluşturur.

Örnek

const myArr = [[1,2],[3,4],[5,6]];
const newArr = myArr.flat();

Kişisel Deneyim

2020 Ocak'tan beri tüm modern tarayıcılar JavaScript Array flat() desteği sağlar:

Chrome Edge Firefox Safari Opera
Chrome 69 Edge 79 Firefox 62 Safari 12 Opera 56
2018 Eylül 2020 Ocak 2018 Eylül 2018 Eylül 2018 Eylül

JavaScript Dizi Metodu flatMap()

ES2019, JavaScript'e flatMap() Dizi yöntemleri.

flatMap() Yöntem öncelikle dizinin tüm elemanlarını haritalar, ardından yeni diziyi oluşturmak için diziyi düzleştirir.

Örnek

const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap((x) => x * 2);

Kişisel Deneyim

Stabil Dizi Metodu sort()

ES2019 RevizyonArray.sort() yöntemi.

2019 öncesinde, QuickSort gibi istikrarsız sıralama algoritmalarının kullanılması izin verilirdi.

ES2019 sonrası, tarayıcıların istikrarlı sıralama algoritmaları kullanması gerekmektedir:

Bir değere göre elemanları sıralarken, bu elemanlar, aynı değere sahip diğer elemanlarla aynı nispi konumları korumalıdır.

Örnek

const myArr = [
  {name:"X00",price:100 },
  {name:"X01",price:100 },
  {name:"X02",price:100 },
  {name:"X03",price:100 },
  {name:"X04",price:110 },
  {name:"X05",price:110 },
  {name:"X06",price:110 },
  {name:"X07",price:110 }
];

Kişisel Deneyim

Yukarıdaki örnekte, fiyat sıralaması yapıldığında, sonuçların diğer nispi konumlarda adların görünmesine izin verilmez, aşağıdaki gibi:

X01 100
X03 100
X00 100
X03 100
X05 110
X04 110
X06 110
X07 110

Yeniden Düzenlenmiş JSON.stringify()

ES2019 RevizyonJSON.stringify() yöntemi.

2019 öncesinde, JSON, \ kodlaması kullanılan karakterleri dizeleştiremedi.

Örnek

let text = JSON.stringify("\u26D4");

Kişisel Deneyim

ES2019 öncesinde, UTF-8 kod noktası (U+D800 ile U+DFFF) üzerinde JSON.stringify() kullanımı, zararlı Unicode karakterleri döndürebilir, örneğin ���.

Bu revizyondan sonra, UTF-8 kod noktasına sahip dizgeler JSON.stringify() ile güvenli bir şekilde dönüştürülebilir ve JSON.parse() ile orijinal dizgeye geri getirilebilir.

Ayırıcı İşaret

şimdi, dizi metinlerinde satır ayırıcı ve paragraf ayırıcı işaretleri kullanılmaya izinleniyor (\u2028 ve \u2029)

2019 öncesinde, bu işaretler satır sonlandırıcı olarak kabul edildi ve hata oluşturdu:

Örnek

// Bu, ES2019'de geçerlidir:
let text = "\u2028";

Kişisel Deneyim

Dikkat!

Şimdi, JavaScript ve JSON aynı kurallara sahiptir.

ES2019 öncesinde:

text = JSON.parse('"\u2028"') "" olarak çözümlenecek。

text = '"\u2028"' verecekdil hatası

Yeniden Düzenlenmiş Function toString()

ES2019 RevizyonFunction toString() metodu hakkında.

toString() metodu fonksiyonun kaynak kodunu temsil eden bir dizi döndürür.

2019 yılından itibaren, toString() fonksiyonu fonksiyonun kaynak kodunu, yorumlar, boşluklar ve dil bilgisi ayrıntıları dahil olmak üzere döndürmelidir.

2019 yılına kadar, farklı tarayıcılar farklı fonksiyon varyasyonlarını döndürdü (örneğin, yorumlar ve boşluklar olmadan). 2019 yılından itibaren, bu fonksiyon tamamen yazıldığı gibi döndürmelidir.

Örnek

function myFunction(p1, p2) {
  return p1 * p2;
}

Kişisel Deneyim