Skrip ECMA 2018
Konvensi penamaan JavaScript dimulai dengan ES1, ES2, ES3, ES5 dan ES6.
Tapi, ECMAScript 2016 dan 2017 tidak disebut ES7 dan ES8.
Sejak 2016 versi baru diberi nama berdasarkan tahun (ECMAScript 2016/2017/2018).
Fitur Baru di ECMAScript 2018
Bab ini memperkenalkan fitur-fitur baru di ECMAScript 2018:
Iterasi Asinkron JavaScript
ECMAScript 2018 menambahkan iterator dan iterable asinkron.
Dengan iterables asinkron, kita dapat menggunakan await
kata kunci dalam for/of
loop.
Contoh
for await () {}
Firefox dan Safari adalah browser pertama yang mendukung iterasi asinkron JavaScript:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
Janji JavaScript.akhirnya
ECMAScript 2018 menyelesaikan implementasi penuh dari objek Promise dengan Promise.finally
:
Contoh
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Chrome dan Firefox adalah browser pertama yang mendukung Promise.finally
:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
Properti Istirahat Objek JavaScript
ECMAScript 2018 menambahkan properti istirahat.
Ini memungkinkan kita untuk menghancurkan sebuah objek dan mengumpulkan sisa makanan ke objek baru:
Contoh
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome, Firefox, dan Opera adalah browser pertama yang mendukung properti objek istirahat:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
Fitur RegExp JavaScript Baru
ECMAScript 2018 menambahkan 4 fitur RegExp baru:
- Pelepasan Properti Unicode (\p{...})
- Lihat di belakang Pernyataan (?<= ) dan (?<! )
- Grup Tangkap Bernama
- s (dotAll) Bendera
Chrome dan Firefox adalah browser pertama dengan dukungan untuk semua fitur RegExp baru:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |