ECMAScript 2020
Nomor versi JavaScript
Versi JS yang lama dinamai dengan angka: ES5 (2009) dan ES6 (2015).
Dari tahun 2016, versi dinamai berdasarkan tahun: ECMAScript 2016, 2017, 2018, 2019, ...
Fitur baru di ES2020:
- BigInt
- Metode string matchAll()
- Operator penggabungan nilai kosong (??)
- Operator garis bawah opsional (?.)
- Operator asosiasi AND (&&=)
- Operator asosiasi OR (||=)
- Operator penggabungan nilai kosong (??=)
- Promise.allSettled()
- Impor Dinamis
Peringatan
Fitur ini relatif baru.
Peramban yang lebih lama mungkin memerlukan kode pengganti (Polyfill).
BigInt JavaScript
Variabel BigInt JavaScript digunakan untuk menyimpan nilai bilangan bulat yang terlalu besar untuk dapat digambarkan dengan angka JavaScript biasa.
Bilangan bulat JavaScript hanya dapat menyesuaikan 15 digit.
Instance Integer
let x = 999999999999999; let y = 9999999999999999; // Terlalu besar
Instance BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Untuk membuat BigInt, silakan gunakan n
Tambahkan ke akhir bilangan bulat atau panggil BigInt():
Contoh
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
Tipe JavaScript untuk BigInt adalah "bigint":
Contoh
let x = BigInt(999999999999999); let type = typeof x;
Sejak September 2020, semua peramban modern mendukung BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Mei 2018 | Januari 2020 | Juli 2019 | September 2020 | Juni 2018 |
Method string JavaScript matchAll()
sebelum ES2020, tidak ada metode string yang dapat digunakan untuk mencari semua penampakan string di dalam string.
Contoh
const iterator = text.matchAll("Cats");
jika parameter adalah ekspresi reguler, maka harus mengatur tanda global (g
) sebaliknya akan melempar TypeError.
Contoh
const iterator = text.matchAll(/Cats/g);
jika ingin melakukan pencarian yang tak berbeda huruf besar, maka harus mengatur tanda tak berbeda huruf besar (i
)
Contoh
const iterator = text.matchAll(/Cats/gi);
Pemberitahuan:ES2021 menambahkan metode string replaceAll().
Operator Penggabungan Nullish (Nullish Coalescing Operator) (operator ??)
jika parameter pertama bukan nilai kosong (null
atau undefined
jika ??
operator mengembalikan parameter pertama.
jika tidak, kembalikan nilai kedua.
Contoh
let name = null; let text = "missing"; let result = name ?? text;
sejak bulan Maret 2020, semua peramban modern mendukung operator nullish:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Januari 2020 | Maret 2020 | Maret 2020 |
Operator Garis Lurus Pilihan (Optional Chaining Operator) (operator ?.)
jika objek adalah undefined
atau null
jikaOperator Garis Lurus Pilihanmengembalikan undefined
(dalam lugar menolak kesalahan).
Contoh
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
sejak bulan Maret 2020, semua peramban modern mendukung ?.=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Maret 2020 | Maret 2020 | Maret 2020 |
Operator penggabungan logika AND (&&= operator)
Operator Penugasan Logika ANDdigunakan untuk antara dua nilai.
jika nilai pertama adalah true
jika nilai pertama
Contoh Penugasan Logika AND
let x = 100; x &&= 5;
Selama bulan September 2020, semua peramban modern mendukung &&=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agustus 2020 | Agustus 2020 | Maret 2020 | September 2020 | September 2020 |
Operator Penugasan Logika OR (operator ||=)
Operator Penugasan Logika ORdigunakan untuk antara dua nilai.
jika nilai pertama adalah false
jika nilai pertama
Contoh Penugasan Logika OR
let x = 10; x ||= 5;
Selama bulan September 2020, semua peramban modern mendukung ||=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agustus 2020 | Agustus 2020 | Maret 2020 | September 2020 | September 2020 |
Operator penggabungan pengalihan nilai kosong(??= operator)
Operator penggabungan pengalihan nilai kosong(Nullish Coalescing Assignment Operator)digunakan di antara dua nilai.
jika nilai pertama undefined
atau null
jika nilai pertama
Contoh penggabungan pengalihan nilai kosong
let x = 10; x ??= 5;
Selama bulan September 2020, semua peramban modern mendukung ??=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agustus 2020 | Agustus 2020 | Maret 2020 | September 2020 | September 2020 |