ECMAScript 2019

Nomor versi JavaScript

Versi JS yang lama di beri nama berdasarkan angka: ES5 (2009) dan ES6 (2015).

Dari tahun 2016, versi di beri nama berdasarkan tahun: ECMAScript 2016, 2017, 2018, 2019, ...

Fitur baru di ES2019:

Peringatan

Fitur ini relatif baru.

Browser yang lama mungkin memerlukan kode pengganti (Polyfill)

Metode String JavaScript trimStart()

ES2019 menambahkan metode String untuk JavaScript trimStart()

trimStart() Cara kerja metode sama seperti trim() Sejenis, namun hanya menghapus spasi di ujung awal string.

Contoh

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

Coba Sendiri

Sejak bulan Januari 2020, semua browser modern mendukung JavaScript String trimStart():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
April 2018 Januari 2020 Juni 2018 September 2018 Mei 2018

Metode String JavaScript trimEnd()

ES2019 menambahkan trimEnd() metode string.

trimEnd() Cara kerja metode sama seperti trim() Sejenis, namun hanya menghapus spasi di ujung belakang string.

Contoh

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

Coba Sendiri

Dari Januari 2020, semua peramban modern mendukung JavaScript String trimEnd():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
April 2018 Januari 2020 Juni 2018 September 2018 Mei 2018

Metode Objek JavaScript fromEntries()

ES2019 menambahkan fromEntries() Metode objek.

fromEntries() Metode membuat objek dari pasangan kunci/nilai yang dapat diulang.

Contoh

const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]
];
const myObj = Object.fromEntries(fruits);

Coba Sendiri

Dari Januari 2020, semua peramban modern mendukung JavaScript Object fromEntries():

Chrome Edge Firefox Safari Opera
Chrome 73 Edge 79 Firefox 63 Safari 12.1 Opera 60
Maret 2019 Januari 2020 Oktober 2018 Maret 2019 April 2019

Pengaturan Catch Opsional

Dari ES2019, jika tidak diperlukan, parameter catch dapat dilewati:

Contoh

Sebelum 2019:

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

Setelah 2019:

try {
// code
} catch {
// code
}

Dari Januari 2020, semua peramban modern mendukung penyingkatan catch binding pilihan:

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 58 Safari 11.1 Opera 53
April 2018 Januari 2020 Januari 2018 Maret 2018 Mei 2018

Metode Array JavaScript flat()

ES2019 menambahkan flat() Metode array.

flat() Metode melengkapkan array yang berikut untuk membuat array baru.

Contoh

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

Coba Sendiri

Dari Januari 2020, semua peramban modern mendukung JavaScript Array flat():

Chrome Edge Firefox Safari Opera
Chrome 69 Edge 79 Firefox 62 Safari 12 Opera 56
September 2018 Januari 2020 September 2018 September 2018 September 2018

Metode Array JavaScript flatMap()

ES2019 menambahkan flatMap() Metode array.

flatMap() Metoden pertama menggambar semua elemen array, lalu membuat array baru melalui penggabungan array.

Contoh

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

Coba Sendiri

Metode Array Stabil sort()

ES2019 Revisimetode sort() Array.

Sebelum 2019, spesifikasi mengizinkan algoritma pengurutan yang tidak stabil, seperti QuickSort.

Setelah ES2019, perambat harus menggunakan algoritma pengurutan yang stabil:

Ketika mengurutkan elemen berdasarkan nilai, elemen ini harus mempertahankan posisi relatif mereka terhadap elemen lain yang memiliki nilai yang sama.

Contoh

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

Coba Sendiri

Dalam contoh di atas, saat diurutkan berdasarkan harga, hasil tidak diizinkan untuk muncul di posisi relatif lain, seperti berikut:

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

Revisi JSON.stringify()

ES2019 Revisimetode stringify() JSON.

Sebelum 2019, JSON tidak dapat menggarap karakter yang dienkodifikasi dengan \.

Contoh

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

Coba Sendiri

Sebelum ES2019, penggunaan JSON.stringify() di kode titik UTF-8 (U+D800 sampai U+DFFF) akan mengembalikan karakter Unicode rusak, seperti ���。

Setelah ini revisi, string yang memiliki kode UTF-8 dapat diubah ke JSON secara aman dengan JSON.stringify() dan dipulihkan ke string asli dengan JSON.parse()。

Simbol Pemisah

Sekarang, di kalimat teks string diperbolehkan untuk menggunakan penanda pemisah baris dan penanda pemisah paragraf (\u2028 dan \u2029)。

Sebelum 2019, ini dianggap sebagai penanda akhir baris dan mengakibatkan kesalahan eksepsi:

Contoh

// Ini adalah yang berlaku di ES2019:
let text = "\u2028";

Coba Sendiri

Perhatian

Sekarang, JavaScript dan JSON memiliki aturan yang sama.

Sebelum ES2019:

text = JSON.parse('"\u2028"') akan diurai menjadi ''。

text = '"\u2028"' akan memberikankesalahan sintaks

Revisi Function toString()

ES2019 RevisiMetode Function toString()

Metode toString() mengembalikan string yang mewakili kode sumber fungsi.

Mulai 2019, toString() harus mengembalikan kode sumber fungsi, termasuk komentar, spasi, dan detil sintaks.

Sebelum 2019, berbagai peramban mengembalikan variasi fungsi yang berbeda (seperti tanpa komentar dan spasi). Mulai 2019, fungsi harus kembali sepenuhnya menurut cara penulisan yang digunakan.

Contoh

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

Coba Sendiri