10 tính năng JavaScript mới trong ES2020 mà bạn nên biết


Tin vui – các tính năng mới của ES2020 hiện đã được hoàn thiện! Điều này có nghĩa là chúng ta hiện có một ý tưởng hoàn chỉnh về những thay đổi xảy ra trong ES2020, đặc điểm kỹ thuật mới và được cải tiến của JavaScript. Vậy hãy xem những thay đổi đó là gì nhé.

BigInt, một trong những tính năng được mong đợi nhất trong JavaScript, cuối cùng cũng có mặt. Nó thực sự cho phép các nhà phát triển có biểu diễn số nguyên lớn hơn nhiều trong mã JS của họ để xử lý dữ liệu để xử lý dữ liệu.

Hiện tại, số lượng tối đa bạn có thể lưu trữ dưới dạng số nguyên trong JavaScript là pow(2, 53) - 1 . Nhưng BigInt thực sự cho phép bạn vượt xa điều đó.

Ảnh chụp màn hình-2020-04-03-at-8.21.47-PM

Tuy nhiên, bạn cần phải có một n được thêm vào cuối số, như bạn có thể thấy ở trên. Cái này n biểu thị rằng đây là một BigInt và phải được xử lý khác bởi công cụ JavaScript (bởi công cụ v8 hoặc bất kỳ công cụ nào nó đang sử dụng).

Cải tiến này không tương thích ngược vì hệ thống số truyền thống là IEEE754 (không thể hỗ trợ các số có kích thước này).

Nhập động trong JavaScript cung cấp cho bạn tùy chọn nhập động các tệp JS dưới dạng các mô-đun trong ứng dụng của bạn một cách tự nhiên. Điều này giống như cách bạn làm với Webpack và Babel vào lúc này.

Tính năng này sẽ giúp bạn gửi mã theo yêu cầu, hay còn gọi là chia tách mã, mà không cần phí webpack hoặc các gói mô-đun khác. Bạn cũng có thể tải mã có điều kiện trong khối if-else nếu muốn.

Đọc thêm  Cách viết thường một chuỗi trong JavaScript – toLowerCase() trong JS

Điều tốt là bạn thực sự nhập một mô-đun và vì vậy nó không bao giờ làm ô nhiễm không gian tên chung.

Ảnh chụp màn hình-2020-04-03-at-8.26.27-PM

Kết hợp Nullish thêm khả năng kiểm tra thực sự nullish giá trị thay vì falsey các giá trị. Đâu là sự khác biệt giữa nullishfalsey giá trị, bạn có thể yêu cầu?

Trong JavaScript, rất nhiều giá trị được falseygiống như các chuỗi rỗng, số 0, undefined, null, false, NaNvà như thế.

Tuy nhiên, rất nhiều lần bạn có thể muốn kiểm tra xem một biến có phải là null không – nghĩa là nếu nó là một trong hai undefined hoặc nullchẳng hạn như khi một biến có một chuỗi trống hoặc thậm chí là một giá trị sai cũng được.

Trong trường hợp đó, bạn sẽ sử dụng toán tử kết hợp nullish mới, ??

Ảnh chụp màn hình-2020-04-03-at-8.47.03-PM

Bạn có thể thấy rõ toán tử OR luôn trả về giá trị trung thực như thế nào, trong khi toán tử nullish trả về giá trị không null.

Cú pháp chuỗi tùy chọn cho phép bạn truy cập các thuộc tính đối tượng được lồng sâu mà không cần lo lắng liệu thuộc tính đó có tồn tại hay không. Nếu nó tồn tại, thật tuyệt! Nếu không, undefined sẽ được trả lại.

Điều này không chỉ hoạt động trên các thuộc tính đối tượng mà còn trên các lệnh gọi hàm và mảng. Siêu tiện lợi! Đây là một ví dụ:

Ảnh chụp màn hình-2020-04-03-at-8.51.58-PM

Các Promise.allSettled phương thức chấp nhận một loạt các Lời hứa và chỉ giải quyết khi tất cả chúng được giải quyết – được giải quyết hoặc bị từ chối.

Điều này không có sẵn trước đây, mặc dù một số triển khai gần giống như raceall Đã có sẵn. Điều này mang lại “Chỉ cần chạy tất cả các lời hứa – Tôi không quan tâm đến kết quả” nguyên bản đối với JavaScript.

Đọc thêm  5 cách xây dựng ứng dụng thời gian thực với JavaScript
Ảnh chụp màn hình-2020-04-03-at-8.54.58-PM

matchAll là một phương pháp mới được thêm vào String nguyên mẫu có liên quan đến Biểu thức chính quy. Điều này trả về một trình vòng lặp trả về tất cả các nhóm phù hợp lần lượt. Chúng ta hãy xem một ví dụ nhanh:

Ảnh chụp màn hình-2020-04-03-at-8.59.14-PM

Nếu bạn đã viết một số mã JS đa nền tảng có thể chạy trên Node, trong môi trường trình duyệt và cả bên trong nhân viên web, thì bạn sẽ gặp khó khăn trong việc nắm bắt đối tượng toàn cầu.

Điều này là bởi vì nó là window cho các trình duyệt, global cho Nút và self cho nhân viên web. Nếu có nhiều thời gian chạy hơn, đối tượng chung cũng sẽ khác đối với chúng.

Vì vậy, bạn sẽ phải có triển khai phát hiện thời gian chạy của riêng mình và sau đó sử dụng toàn cầu chính xác – nghĩa là cho đến bây giờ.

ES2020 mang đến cho chúng ta globalThis luôn đề cập đến đối tượng toàn cầu, bất kể bạn đang thực thi mã của mình ở đâu:

Ảnh chụp màn hình-2020-04-03-at-9.02.27-PM

Trong các mô-đun JavaScript, đã có thể sử dụng cú pháp sau:

import * as utils from './utils.mjs'

Tuy nhiên, không đối xứng export cú pháp tồn tại, cho đến bây giờ:

export * as utils from './utils.mjs'

Điều này tương đương với như sau:

import * as utils from './utils.mjs'
export { utils }

Thông số kỹ thuật ECMA không chỉ định theo thứ tự nào for (x in y) nên chạy. Mặc dù trước đây các trình duyệt đã tự triển khai một trật tự nhất quán, nhưng điều này đã được chuẩn hóa chính thức trong ES2020.

Đọc thêm  JavaScript Replace – Cách sử dụng phương thức String.prototype.replace() Ví dụ về JS

Các import.meta đối tượng được tạo bằng cách triển khai ECMAScript, với một null nguyên mẫu.

Hãy xem xét một mô-đun, module.js:

<script type="module" src="https://www.freecodecamp.org/news/javascript-new-features-es2020/module.js"></script>

Bạn có thể truy cập thông tin meta về mô-đun bằng cách sử dụng import.meta vật:

console.log(import.meta); // { url: "file:///home/user/module.js" }

Nó trả về một đối tượng với một url thuộc tính cho biết URL cơ sở của mô-đun. Đây sẽ là URL mà tập lệnh được lấy từ đó (đối với tập lệnh bên ngoài) hoặc URL cơ sở tài liệu của tài liệu chứa (đối với tập lệnh nội tuyến).

Tôi thích sự nhất quán và tốc độ mà cộng đồng JavaScript đã và đang phát triển. Thật tuyệt vời và thực sự tuyệt vời khi thấy cách JavaScript từ một ngôn ngữ bị la ó, 10 năm trôi qua, trở thành một trong những ngôn ngữ mạnh nhất, linh hoạt nhất và linh hoạt nhất mọi thời đại ngày nay.

Bạn có muốn học JavaScript và các ngôn ngữ lập trình khác theo một cách hoàn toàn mới không? Hãy chuyển sang một nền tảng mới dành cho các nhà phát triển mà tôi đang làm việc để dùng thử ngay hôm nay!

Tính năng yêu thích của bạn về ES2020 là gì? Hãy cho tôi biết về điều đó bằng cách tweet và kết nối với tôi trên Twitter và Instagram!

Đây là một bài đăng trên blog được sáng tác từ video của tôi có cùng chủ đề. Nó sẽ có nghĩa là cả thế giới đối với tôi nếu bạn có thể thể hiện tình yêu với nó!





Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status