Home / Tutorial / Javascript / Giải ngố về ES6, ES7, ES8, ECMAScript

Giải ngố về ES6, ES7, ES8, ECMAScript

Javascript từng là một ngôn ngữ vô cùng Sida khiến bao gã Cu – Đơ phải khóc thét và cực đoan mãi cho đến khi ES6 ra đời 😂. Vậy ES6 và ECMAScript là cái khỉ khô gì vậy ???.

Javascript được đặt tên với tiền tố là Java với hi vọng ăn theo sự thành công của Java. Một thời gian sau đó, tổ chức sở hữu Javascript là Netscape nộp đơn cho tổ chức chuẩn hóa thông tin là ECMA để yêu cầu chuẩn hóa Javascript. Dẫn đến sự ra đời của một tiêu chuẩn ngôn ngữ mới là ECMAScript.

Tóm gọn cái váy lại thì ECMAScript là tiêu chuẩn còn Javascript là ngôn ngữ lập trình nổi tiếng nhất tuân theo tiêu chuẩn này.

Vậy ES là gì ???

ES đơn giản là từ viết tắt của ECMAScript. Còn con số đi theo ES cho biết phiên bản. Ví dụ, ta có ES1, ES2,…, ES8.

32U3YYp

Sự tiến hoá của Javascript

Các phiên bản trước chúng ta đã quá quen thuộc nên ở đây mình xin không đề cập đến 😁.

ES6 và ES2015

Đến phiên bản thứ 6 xuất hiện thêm từ ES2015 . ES6 ES2015  chính là 1, 2015 là năm ES6 được ra đời.

Phiên bản này là phiên bản cực kì đáng chú ý vì nó cho ra đời rất nhiều cú pháp, khái niệm mới hữu ích và được coi như một Big Update của Javascript.

Tiếp đây mình sẽ giới thiệu một số đặc điểm đặc trưng nhất của 3 phiên bản mới nhất của Javascript là ES6, ES7, ES8.

Advantages-of-JavaScript-ES6-over-ES5

 

-Template Literals

Là cú pháp cho phép bạn nối chuỗi, multi-line một cách gọn gàng và đẹp đẽ hơn khi có nhiều biến được nối với nhau.

Kết quả của cả 2 cách là tương tự nhau. Tuy nhiên thay vì dùng cặp dấu nháy đơn ” hay nháy kép “”, ta sử dụng cặp dấu nháy nghiêng khiến code chúng ta trở nên dễ đọc dễ sửa hơn rất nhiều.

-Let và Const, Block-Scoped

let và const là 2 cách khai báo biến mới và chúng có giới hạn trong một cặp {} của if, function, for,…

Với cách viết này chúng ta dễ dàng kiểm soát, tìm kiếm lỗi, debug. let và const  cũng không thể khai báo lại đặc biệt với const chúng ta không thể trực tiếp gán giá trị mới vào cho nó(Ngoại trừ gán lại thuộc tính của một object).

-Arrow Function

Sử dụng arrow function trong ES6 cho phép chúng ta không cần sử dụng that = this hoặc self = this hoặc _this = this hoặc .bind(this).

Cá nhân mình rất thích cách viết này vì nó rất tiện, ngắn gọn và không bị phụ thuộc vào Đít (this) 😁. Các bạn có thể tham khảo chi tiết về Arrow Function Đây. Vì nó khá là dài nên mình chỉ có thể đưa tài liệu tham khảo.

-Promise

Nhắc đến ES6 mà không nhắc Promise thì đúng là thiếu sót vô cùng lớn. Promise giúp chúng ta xử lý những dòng code bất đồng bộ đơn giản hơn, dễ sử dụng hơn so với callback. Chuỗi Promise mình đã viết từ trước, các bạn có thể qua đường dẫn này tham khảo http://imdev.vn/bat-dong-bo-trong-javascript-asynchronous/

-Destructuring Assignment

Đây là một khái niệm khá khó hiểu nhưng về cơn bản cú pháp này cho phép bạn khởi tạo nhanh một biến có tên là các key trong object – array và gán giá trị ngay cho chúng. Nếu không tồn tại key trong array – object, mặc định giá trị của biến đó sẽ là undefined.

Destructuring assignment còn rất nhiều cách viết hay, các bạn có thể xem đầy đủ tại Đây.

-Enhanced Object Literals

Cú pháp rất hay cho phép tạo key trong object thông qua biến. Chúng ta có thể theo dõi cách hoạt động của nó qua ví dụ sau:

Khá là đơn giản và tiện phải không nào 😁

-Classes

Tính năng cho phép bạn viết OOP với JS. Nếu bạn đã làm quen với React thì cách viết này chẳng còn xa lạ gì cả. Bản chất nó dựng lên từ Prototype và cũng không hoàn toàn là OOP. Nhưng theo mình thấy là nó đủ dùng vì có những yếu tố quan trọng nhất của OOP.

Tạm kết: Còn rất nhiều tính năng hay như ModuleDefault rest spread, … mà bài viết đã khá là dài nên mình chỉ đề cập đến một số điểm nổi bật nhất. Bài viết mình có tham khảo một số nguồn và dưới đây mình sẽ đưa thêm một số tài liệu để các bạn có thể tìm hiểu thêm. Chúc các bạn có những kiến thức bổ ích và vận dụng tốt trong quá trình làm việc của mình.

Nguồn và tài liệu tham khảo:

https://notcuder.com/javascript-than-thanh-giai-ngo-ve-es6-es8-es-2017-ecmascript/

https://www.w3schools.com/js/js_es6.asp

About Chung Chích Choè

Rất ham chơi và hơi chém gió. Mong muốn chia sẻ, đóng góp cho ngành công nghệ thông tin nước nhà. Đồng thời mong muốn xây dựng và phát triển một cộng đồng yêu thích công nghệ thông tin để lại được ngồi cùng nhau chém gió :D.

Leave a Reply

Your email address will not be published. Required fields are marked *