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

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

Kişisel olarak deneyin

Örnek 2

fruits dizisinin üçüncü elemanını alın:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];

Kişisel olarak deneyin

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

Kişisel olarak deneyin

Örnek 2

name string'in üçüncü harfini alın:

const name = "W3Schools";
let letter = name[2];

Kişisel olarak deneyin

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

Kişisel olarak deneyin

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.hasOwnPropertyama tüm nesne türlerini destekler.

Örnek

Object.hasOwn(myObject, age)

Kişisel olarak deneyin

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

Kişisel olarak deneyin

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