ECMAScript 2022
JavaScript sürüm numaraları
Eski ECMAScript sürümleri sayılarla adlandırılır: ES5 ve ES6.
2016 yılından itibaren, sürümler yıllarla adlandırılır: ES2016, 2018, 2020, 2022.
ES2022'nin yeni özellikleri
- Array at()
- String at()
- RegExp /d
- Object.hasOwn()
- error.cause
- await import
- Sınıf alan bildirimleri
- Özel yöntemler ve alanlar
Uyarı:
Bu özellikler nispeten yeni.
Eski tarayıcılar için alternatif kod (Polyfill) gerekebilir.
JavaScript Array at()
ES2022, dizi yöntemlerini tanıttı at()
:
Örnek 1
fruits dizisinin üçüncü elemanını alın:
const fruits = ["Banana", "Orange", "Apple", "Mango"]; let fruit = fruits.at(2);
Örnek 2
fruits dizisinin üçüncü elemanını alın:
const fruits = ["Banana", "Orange", "Apple", "Mango"]; let fruit = fruits[2];
at()
Yöntem, diziden belirtilen indeks numarasını dönen bir eleman döndürür.
at()
Yöntemler []
Dönüşen sonuçlar aynıdır.
2022 Yılı Mart'tan itibaren, tüm modern tarayıcılar at()
Yöntemler:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
2021 Yıl Nisan | 2021 Yılı Temmuz | 2021 Yılı Temmuz | 2022 Yılı Mart | 2021 Yılı Ağustos |
Dikkat:
Birçok dil negatif indeks kullanımına izin verir (örneğin [-1]
)nesne/dizi/ziyaretin son elemanına erişim.
Bu, JavaScript'te yapılamaz çünkü []
Diziler ve nesneler için kullanılır. obj[-1], son özellik yerine -1 numaralı anahtarın değerini belirtir.
at()
Bu sorunu çözmek için ES2022'de yöntem eklendi.
JavaScript String at()
ES2022, string yöntemlerini tanıttı at()
:
Örnek 1
name string'in üçüncü harfini alın:
const name = "W3Schools"; let letter = name.at(2);
Örnek 2
name string'in üçüncü harfini alın:
const name = "W3Schools"; let letter = name[2];
at()
Yöntemler, dizesinden belirli bir indeksteki karakterleri döndürür.
at()
Yöntemler []
Dönüşen sonuçlar aynıdır.
2022 Yılı Mart'tan itibaren, tüm modern tarayıcılar at()
Yöntemler:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
2021 Yıl Nisan | 2021 Yılı Temmuz | 2021 Yılı Temmuz | 2022 Yılı Mart | 2021 Yılı Ağustos |
RegExp d sembolü
ES2022 /d
Semboller, eşleştirmenin başlangıcı ve sonu için kullanılır.
Örnek
let text = "aaaabb"; let result = text.match(/(aa)(bb)/d);
RegExp sembolleri, büyük/küçük harf duyarsızlıklı ve diğer genel aramaları belirlemek için kullanılır:
Sembol | Açıklama | Deneyin |
---|---|---|
g | Tümü için genel eşleştirme yapın (arama). | Deneyin |
i | Büyük/küçük harf duyarsızlıklı eşleştirme yapın. | Deneyin |
d | Alt dize eşleştirmesi yapın (ES2022 yeni). | Deneyin |
m | Çok satırlı eşleştirme. | Deneyin |
Object.hasOwn()
ES2022, öz nitelikleri kontrol etmek için güvenli bir yöntem sağlar.
Object.hasOwn()
benzer Object.prototype.hasOwnProperty
ama tüm nesne türlerini destekler.
Örnek
Object.hasOwn(myObject, age)
Hata Nedeni
ES2022, error.cause ile temel nedeni belirlemeyi izin verir.
Örnek
connectData(); catch (err) { } throw new Error("Bağlantı başarısız oldu.", { cause: err }); }
JavaScript await import
JavaScript modülleri şimdi, çalışmadan önce gerekli kaynakları yüklemeyi bekleyebilir:
import {myData} from './myData.js'; const data = await myData();
JavaScript sınıf alanı beyan
class Hello { counter = 0; // sınıf alanı } const myClass = new Hello(); let x = myClass.counter;
2021 Yılı Nisan'tan itibaren, tüm modern tarayıcılar sınıf alanlarını desteklemektedir:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 72 | Edge 79 | Firefox 69 | Safari 14.1 | Opera 60 |
2019 Yılı Ocak | 2020 Yıl Ocak | 2019 Yılı Eylül | 2021 Yıl Nisan | 2020 Yıl Ocak |
JavaScript Özel Yöntemleri ve Alanları
class Hello { #counter = 0; // Özel Alan #myMethod() {} // Özel Metod } const myClass = new Hello(); let x = myClass.#counter; // Hata myClass.#myMethod(); // Hata
2021 Yıl Haziran'dan itibaren, tüm modern tarayıcılarda özel yöntemler ve alanlar desteklenmektedir:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 74 | Edge 79 | Firefox 90 | Safari 14.1 | Opera 62 |
2019 Yıl Nisan | 2020 Yıl Ocak | 2021 Yıl Haziran | 2021 Yıl Nisan | 2019 Yıl Haziran |