Thứ năm, 13/06/2019 | 00:00 GMT+7

Có gì mới trong ECMAScript 2019 (ES2019) / ES10


ECMAScript (viết tắt là ES) là một đặc tả ngôn ngữ kịch bản được tiêu chuẩn hóa bởi ECMA International trong ECMA-262 và ISO / IEC 16262. Nó được tạo ra để chuẩn hóa ngôn ngữ JavaScript, để thúc đẩy nhiều triển khai tiêu chuẩn độc lập từ các nhà cung cấp trình duyệt. Nó phát triển hàng năm với các tính năng mới.

Phiên bản 2019 của thông số kỹ thuật ECMAScript đã bổ sung nhiều tính năng mới và ở đây tôi sẽ đề cập đến một số tính năng mới này. Cá nhân tôi thích cách javaScript tiếp tục phát triển và cải thiện một cách thường xuyên.

Array.flat ()

Array.flat() trả về một mảng mới với bất kỳ (các) mảng con nào được làm phẳng. Một lệnh gọi đến Array.flat() mà không có bất kỳ đối số nào sẽ chỉ làm phẳng sâu một cấp. Đối số độ sâu tùy chọn có thể được cung cấp hoặc nó có thể được gọi liên tiếp.

Ví dụ:

let arr = [1, 2, 3, [4, 5, 6, [7, 8, 9, [10, 11, 12]]]];

arr.flat(); // [1, 2, 3, 4, 5, 6, Array(4)];

arr.flat().flat(); // [1, 2, 3, 4, 5, 6, 7, 8, 9, Array(3)];

arr.flat(3); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

// Or, if you're not sure about the depth of the array:
arr.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Array.flatMap ()

Phương thức flatMap() giống với phương thức bản đồ ES6, nhưng cũng làm phẳng cùng một lúc. Phương thức flatMap() trước tiên ánh xạ từng phần tử bằng cách sử dụng một hàm ánh xạ, sau đó làm phẳng kết quả thành một mảng mới. flatMap() thường khá hữu ích, vì việc hợp nhất cả hai thành một phương thức sẽ hiệu quả hơn một chút.

Ví dụ:

let arr = [1, 2, 3, 4, 5];

arr.map(x => [x, x * 2]);
// [Array(2), Array(2), Array(2)]
// 0: (2)[1, 2]
// 1: (2)[2, 4]
// 2: (2)[3, 6]

arr.flatMap(v => [v, v * 2]);
// [1, 2, 2, 4, 3, 6, 4, 8, 5, 10]

String.trimStart () & String.trimEnd ()

String.trimStart() được dùng để cắt khoảng trắng từ đầu một chuỗi.

Ví dụ:

let  greeting =  "    Hello everyone";

console.log(greeting.trimStart());
// "Hello everyone"
let greeting = "Hello world    ";

console.log(greeting.trimEnd());
// "Hello world"

Ràng buộc bắt tùy chọn

Ràng buộc bắt tùy chọn cho phép các nhà phát triển sử dụng try / catch mà không có tham số lỗi bên trong khối catch.

Ví dụ:

Trước ES2019, ta sử dụng:

try {
  // some code
}
catch (err) {
  // error handling code
}

Bây giờ ta có thể sử dụng try / catch như thế này với ES2019:

try  {
  // some code
}
catch {
  // error handling code
}

Object.fromEntries ()

Nó tạo một đối tượng hoặc chuyển đổi các cặp key-value thành một đối tượng. Nó chỉ chấp nhận các Object.fromEntries(someIterable) lặp lại, ví dụ: Object.fromEntries(someIterable) .

Ví dụ:

let entries = new Map([["name", "john"], ["age", 22]]);

console.log(Object.fromEntries(entries));
// { name: 'john', age: 22 }

Symbol.description

Thuộc tính mô tả chỉ đọc là một chuỗi trả về mô tả tùy chọn của các đối tượng Symbol.

Ví dụ:

let mySymbol = `My Symbol`;

let symObj = Symbol(mySymbol);

console.log(symObj) // Symbol(mySymbol);

console.log(String(symObj) === `Symbol(${mySymbol})`); // true

console.log(symObj.description); // "My Symbol"

Tags:

Các tin liên quan