This site is mobile accessible. Press the "Tap Here" button to use a different font-size.


Smartphone icons created by Freepik - Flaticon

  • 9.6 JS 2018

    • The JavaScript naming convention started with ES1, ES2, ES3, ES5 and ES6.
    • But, ECMAScript 2016 and 2017 was not called ES7 and ES8.
    • Since 2016 new versions are named by year (ECMAScript 2016 / 2017 / 2018).

    New Features in ECMAScript 2018

    This chapter introduces the new features in ECMAScript 2018:

    • Asynchronous Iteration
    • Promise Finally
    • Object Rest Properties
    • New RegExp Features

    JavaScript Asynchronous Iteration

    • ECMAScript 2018 added asynchronous iterators and iterables.
    • With asynchronous iterables, we can use the await keyword in for/of loops.

    Example

    for await () {}

    Firefox and Safari were the first browsers with support for JavaScript asynchronous iteration:

    Chrome browser Edge browser Firefox browser Safari browser Opera browser
    Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
    Des 2017 Jan 2020 Nov 2017 Sep 2017 Jan 2018

    JavaScript Promise.finally

    ECMAScript 2018 finalizes the full implermentation of the Promise object with Promise.finally:

    Example

    let myPromise = new Promise();
    
    myPromise.then();
    myPromise.catch();
    myPromise.finally();

    Chrome and Firefox were the first browsers with support for Promise.finally:

    Chrome browser Edge browser Firefox browser Safari browser Opera browser
    Chrome 63 Edge 18 Firefox 58 Safari 11.1 Opera 50
    Des 2017 Nov 2018 Jan 2018 Mar 2018 Jan 2018

    JavaScript Object Rest Properties

    • ECMAScript 2018 added rest properties.
    • This allows us to destruct an object and collect the leftovers onto a new object:

    Example

    let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
    x; // 1
    y; // 2
    z; // { a: 3, b: 4 }

    Chrome, Firefox, ans Opera were the first browsers with support for object rest properties:

    Chrome browser Edge browser Firefox browser Safari browser Opera browser
    Chrome 60 Edge 79 Firefox 55 Safari 11.1 Opera 47
    Jul 2017 Jan 2020 Aug 2017 Mar 2018 Aug 2017

    New JavaScript RegExp Features

    ECMAScript 2018 added 4 new RegExp features:

    • Unicode Property Escapes (\p{...})
    • Lookbehind Assertions (?<= ) and (?<! )
    • Named Capture Groups
    • s (dotAll) Flag

    Chrome and Firefox were the first browsers with support for all the new RegExp features:

    Chrome browser Edge browser Firefox browser Safari browser Opera browser
    Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
    Jan 2018 Jan 2020 Jun 2020 Sep 2018 Feb 2018
    Navigate this module

    Eventually the navigation links, above, will be replaced by these << (previous) and >> (next) buttons below.



    JavaScript icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon