ECMAScript 2022

Nomor versi JavaScript

Versi ECMAScript lama dinamai dengan angka: ES5 dan ES6.

Dari tahun 2016, versi dinamai dengan tahun: ES2016, 2018, 2020, 2022.

Fitur baru ES2022

Peringatan:

Fitur ini relatif baru.

Perambatan lama browser mungkin memerlukan kode pengganti (Polyfill).

JavaScript Array at()

ES2022 memperkenalkan metode array at():

Contoh 1

Mendapatkan elemen ketiga dari array fruits:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);

Coba sendiri

Contoh 2

Mendapatkan elemen ketiga dari array fruits:

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

Coba sendiri

at() Metode ini mengembalikan elemen yang ditentukan indeks dari array.

at() Metode dengan [] Hasil yang dihasilkan sama.

Mulai bulan Maret 2022, semua browser modern mendukung: at() Metode:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
April 2021 Juli 2021 Juli 2021 Maret 2022 Agustus 2021

Perhatian:

Banyak bahasa memungkinkan penggunaan indeks negatif (seperti [-1]) Mengakses elemen akhir objek/array/string.

Ini tidak mungkin di JavaScript karena [] Digunakan untuk mengakses array dan objek. obj[-1] mengacu pada nilai kunci -1, bukan properti terakhir objek.

at() Metode ini diperkenalkan di ES2022 untuk memecahkan masalah ini.

JavaScript String at()

ES2022 memperkenalkan metode string at():

Contoh 1

Mendapatkan huruf ketiga string name:

const name = "W3Schools";
let letter = name.at(2);

Coba sendiri

Contoh 2

Mendapatkan huruf ketiga string name:

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

Coba sendiri

at() Metode mengembalikan karakter yang ditentukan indeksnya dari string.

at() Metode dengan [] Hasil yang dihasilkan sama.

Mulai bulan Maret 2022, semua browser modern mendukung: at() Metode:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
April 2021 Juli 2021 Juli 2021 Maret 2022 Agustus 2021

modifikator d RegExp

ES2022 menambahkan /d Modifikator, digunakan untuk menunjukkan awal dan akhir pengecokan.

Instansi

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);

Coba sendiri

Modifikator RegExp digunakan untuk menentukan pengecokan yang tak membedakan huruf besar dan kecil, serta pencarian global lainnya:

Modifikator Deskripsi Coba sendiri
g Melakukan pengecokan global (mencari semua). Coba sendiri
i Melakukan pengecokan yang tak membedakan huruf besar dan kecil. Coba sendiri
d Melakukan pengecokan substring (diperkenalkan di ES2022). Coba sendiri
m Melakukan pengecokan multi-baris. Coba sendiri

Object.hasOwn()

ES2022 menyediakan metode yang aman untuk memeriksa apakah properti adalah properti milik objek.

Object.hasOwn() seperti Object.prototype.hasOwnPropertytetapi mendukung semua tipe objek.

Instansi

Object.hasOwn(myObject, age)

Coba sendiri

Penyebab Kesalahan

ES2022 mengijinkan untuk menentukan penyebab utama kesalahan melalui error.cause.

Instansi

connectData(); 
  catch (err) { 
} 
  throw new Error("Gagal terhubung.", { cause: err }); 
}

Coba sendiri

await import JavaScript

Modul JavaScript sekarang dapat menunggu sumber yang perlu diimpor sebelum menjalankan:

import {myData} from './myData.js';
const data = await myData();

Deklarasi field class JavaScript

class Hello {
  counter = 0; // field class
}
const myClass = new Hello();
let x = myClass.counter;

Mulai bulan April 2021, deklarasi field class didukung di semua browser modern:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
January 2019 Januari 2020 September 2019 April 2021 Januari 2020

Metode dan field pribadi JavaScript

class Hello {
  #counter = 0;  // Field Pribadi
  #myMethod() {} // Metode Pribadi
}
const myClass = new Hello();
let x = myClass.#counter; // Kesalahan
myClass.#myMethod();      // Kesalahan

Dari Juni 2021, metode dan field pribadi didukung di semua browser modern:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
April 2019 Januari 2020 Juni 2021 April 2021 Juni 2019