ECMAScript 2018
Die JavaScript-naamkonvensie het begin met ES1, ES2, ES3, ES5 en ES6.
Maar ECMAScript 2016 en 2017 is nie ES7 en ES8 genoem nie.
Sedert 2016 word nuwe weergawes volgens jaar benoem (ECMAScript 2016 / 2017 / 2018).
Nuwe kenmerke in ECMAScript 2018
Hierdie hoofstuk stel die nuwe kenmerke in ECMAScript 2018 bekend:
JavaScript Asynchrone Iterasie
ECMAScript 2018 het asinchrone iterators en iterables bygevoeg.
Met asynchrone iterables kan ons die await
sleutelwoord in for/of
lusse gebruik.
Voorbeeld
for await () {}
Firefox en Safari was die eerste blaaiers met ondersteuning vir JavaScript asinchroniese iterasie:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
JavaScript Promise.finally
ECMAScript 2018 finaliseer die volle implementering van die Promise-objek met Promise.finally
:
Voorbeeld
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Chrome en Firefox was die eerste blaaiers met ondersteuning vir Promise.finally
:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
JavaScript Object Res Properties
ECMAScript 2018 het ruseienskappe bygevoeg.
Dit stel ons in staat om 'n voorwerp te vernietig en die oorskiet op 'n nuwe voorwerp te versamel:
Voorbeeld
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome, Firefox en Opera was die eerste blaaiers met ondersteuning vir voorwerprus-eienskappe:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
Nuwe JavaScript RegExp-kenmerke
ECMAScript 2018 het 4 nuwe RegExp-kenmerke bygevoeg:
- Unicode Property Escapes (\p{...})
- Kyk agter bewerings (?<= ) en (?<! )
- Genoemde vanggroepe
- s (dotAll) Vlag
Chrome en Firefox was die eerste blaaiers met ondersteuning vir al die nuwe RegExp-kenmerke:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |