ECMAScript 2018

Giao thức đặt tên của JavaScript bắt đầu từ ES1, ES2, ES3, ES5 và ES6.

Nhưng, ECMAScript 2016 và 2017 không được gọi là ES7 và ES8.

Từ năm 2016, các phiên bản mới được đặt tên theo năm (ECMAScript 2016/2017/2018).

Tính năng mới trong ECMAScript 2018

Chương này giới thiệu tính năng mới của ECMAScript 2018:

  • Lặp lại đồng bộ
  • Promise Finally
  • Thuộc tính Rest của đối tượng
  • Tính năng mới của RegExp

Lặp lại đồng bộ của JavaScript

ECMAScript 2018 đã thêm bộ điều khiển lặp lại đồng bộ và đối tượng có thể lặp lại.

Bằng cách lặp lại đồng bộ, chúng ta có thể for/of sử dụng trong vòng lặp await ký tự.

Mô hình

for await () {}

Firefox và Safari là những trình duyệt đầu tiên hỗ trợ việc lặp lại đồng bộ JavaScript:

Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ tất cả các tính năng mới của RegExp: IE Firefox Safari Opera
Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
Tháng 12 năm 2017 Tháng 1 năm 2020 Tháng 11 năm 2017 Tháng 9 năm 2017 Tháng 1 năm 2018

Promise.finally của JavaScript

ECMAScript 2018 sử dụng Promise.finally Hoàn thành việc triển khai đầy đủ đối tượng Promise:

Mô hình

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

Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ Promise.finally của trình duyệt:

Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ tất cả các tính năng mới của RegExp: IE Firefox Safari Opera
Chrome 63 Edge 18 Firefox 58 Firefox 55 Opera 50
Tháng 12 năm 2017 Tháng 11 năm 2018 Tháng 1 năm 2018 Tháng 7 năm 2017 Tháng 1 năm 2018

Thuộc tính Rest của đối tượng JavaScript

ECMAScript 2018 đã thêm thuộc tính Rest.

Điều này cho phép chúng ta phá hủy một đối tượng và thu thập phần còn lại vào một đối tượng mới:

Mô hình

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

Chrome, Firefox và Opera là những trình duyệt đầu tiên hỗ trợ thuộc tính Rest của đối tượng:

Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ tất cả các tính năng mới của RegExp: IE Firefox Safari Opera
Chrome 60 Edge 79 Chrome 60 Firefox 55 Safari 11.1
Opera 47 Tháng 1 năm 2020 Tháng 3 năm 2018 Tháng 7 năm 2017 Tháng 3 năm 2018

Tháng 8 năm 2017

Tính năng mới của JavaScript RegExp

  • ECMAScript 2018 đã thêm 4 tính năng mới của RegExp:
  • Đối tượng chuyển đổi thuộc tính Unicode (\p{...})
  • Kết luận sau (Lookbehind Assertions) (?<= ) và (?<! )
  • Nhóm bắt tên (Named Capture Groups)

Biểu tượng (dotAll) s

Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ tất cả các tính năng mới của RegExp: IE Firefox Safari Opera
Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Tháng 1 năm 2018 Tháng 1 năm 2020 Tháng 6 năm 2020 Tháng 9 năm 2018 Tháng 2 năm 2018