ECMAScript 2018
Posted: Fri Oct 27, 2023 9:07 am
ECMAScript 2018
JavaScript Version Numbers
Old JS versions are named by numbers: ES5 (2009) and ES6 (2015).
From 2016, versions are named by year: ECMAScript 2016, 2017, 2018, 2019, ...
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 Shared Memory
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 () {}
JavaScript asynchronous iteration is supported in all modern browsers since January 2020:
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 finalizes the full implementation of the Promise object with Promise.finally:
Example
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Promise.finally is supported in all modern browsers since November 2018:
Chrome 63
Edge 18
Firefox 58
Safari 11.1
Opera 50
Dec 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 }
Object rest properties is supported in all modern browsers since January 2020:
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
The new RegExp features is supported in all modern browsers since June 2020:
Chrome 64
Edge 79
Firefox 78
Safari 12
Opera 51
Jan 2018
Jan 2020
Jun 2020
Sep 2018
Feb 2018
JavaScript Threads
In JavaScript you use the Web Workers API to create threads.
Worker threads are used to execute code in the background so that the main program can continue execution.
Worker threads run simultaneously with the main program. Simultaneous execution of different parts
of a program can be time-saving.
JavaScript Shared Memory
Shared memory is a feature that allows threads (different parts of a program) to
access and update the same data in the same memory.
Instead of passing data between threads, you can pass a SharedArrayBuffer object
that points to the memory where data is saved.
SharedArrayBuffer
A SharedArrayBuffer object represents a fixed-length raw binary data buffer similar to the ArrayBuffer object.
★
+1
Reference: https://www.w3schools.com/js/js_2018.asp
JavaScript Version Numbers
Old JS versions are named by numbers: ES5 (2009) and ES6 (2015).
From 2016, versions are named by year: ECMAScript 2016, 2017, 2018, 2019, ...
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 Shared Memory
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 () {}
JavaScript asynchronous iteration is supported in all modern browsers since January 2020:
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 finalizes the full implementation of the Promise object with Promise.finally:
Example
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Promise.finally is supported in all modern browsers since November 2018:
Chrome 63
Edge 18
Firefox 58
Safari 11.1
Opera 50
Dec 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 }
Object rest properties is supported in all modern browsers since January 2020:
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
The new RegExp features is supported in all modern browsers since June 2020:
Chrome 64
Edge 79
Firefox 78
Safari 12
Opera 51
Jan 2018
Jan 2020
Jun 2020
Sep 2018
Feb 2018
JavaScript Threads
In JavaScript you use the Web Workers API to create threads.
Worker threads are used to execute code in the background so that the main program can continue execution.
Worker threads run simultaneously with the main program. Simultaneous execution of different parts
of a program can be time-saving.
JavaScript Shared Memory
Shared memory is a feature that allows threads (different parts of a program) to
access and update the same data in the same memory.
Instead of passing data between threads, you can pass a SharedArrayBuffer object
that points to the memory where data is saved.
SharedArrayBuffer
A SharedArrayBuffer object represents a fixed-length raw binary data buffer similar to the ArrayBuffer object.
★
+1
Reference: https://www.w3schools.com/js/js_2018.asp