+13

ES6 và các SupperSet thông dụng trong Javascript

ES6 là gì?

Có thể bạn đã biết, Javascript (cùng với Jscript và ActionScript) một ngôn ngữ lập trình web phía client mà chúng ta vẫn sử dụng còn có một tên gọi khác là ECMAScript ?

ECMAScript hiện nay không phải là phiên bản đầu tiên. Dưới đây là các mốc thời gian của ECMAScript:

  • ECMAScript 1:(ES1) ra đời năm1997
  • ECMAScript 2:(ES2) được giới thiệu năm 1998
  • ECMAScript 3:(ES3) được giới thiệu năm 1999
  • ECMAScript 4:(ES4) được giới thiệu năm 2000
    • jQuery ra đời năm 2006
    • NodeJS ra đời năm 2009
  • ECMAScript 5:(ES5) ra đời năm 2011
  • ECMAScript 6:(ES6) tháng 6 năm 2015
  • ECMAScript 2016 (ES7)
  • ECMAScript 2017 (ES8)

Nhưng hôm nay mình chỉ muốn nói về ES6 vì nó đang rất ổn và tương thích với nhiều trình duyệt.

Phiên bản mới của ECMAScript là ECMASScript 2015 (hay ES6) có lẽ là bản cập nhật quan trọng nhất kể từ phiên bản đầu tiên vào năm 1997. Mục tiêu chính của ES6 là nhằm cung cấp sự hỗ trợ tốt nhất dành cho việc tạo ra các ứng dụng và thư viện (library) với quy mô lớn hơn. Điều này có nghĩa là cú pháp hoàn thiện hơn, các shortcut mới để lập trình dễ dàng hơn, và còn có các phương pháp, keyword (từ khóa), kiểu dữ liệu mới và nhiều cải tiến khác.

Tài liệu của ES6 thì bao quát, nếu bạn muốn tìm hiểu nhiều hơn, bạn có thể download toàn bộ các đặc điểm kỹ thuật từ website của ECMA International. Trong khuôn khổ bài viết hôm nay, chúng tôi sẽ giới thiệu 10 tính năng hay nhất, dù cho ES6 có rất nhiều tính năng mới. Nếu bạn muốn thực nghiệm với ES6, thì ES6 Fiddle là một nơi thích hợp để làm điều này, và bạn cũng có thể tìm thấy một số các code snippet mẫu tại đây.

Hỗ trợ dành cho ECMAScript 6

Các nhà cung cấp trình duyệt đã từng bước thêm hỗ trợ dành cho các tính năng của ECMAScript 6. Bạn có thể tìm thấy bảng tương thích tại đây về hỗ trợ trình duyệt và trình biên dịch đối với các tính năng mới.

Nếu bạn quan tâm đến hỗ trợ ES6 trong Node.js, bạn có thể tham khảo thêm các tài liệu tại đây.

Mặc dù không phải tất cả các tính năng hiện tại đều được hỗ trợ, nhưng chúng ta có thể sử dụng các bộ phiên dịch (transpiler) chẳng hạn như Babel để phiên dịch lập trình ES6 sang ES5. Ngoài ra còn có Grunt plugin dành cho Babel, các ES6 plugin dành cho Grunt, và Gulp-Babel plugin để chúng ta có thể lựa chọn.

Hiện tại chúng ta có thể sử dụng các tính năng và cú pháp đã được cải tiến mà không cần phải lo về khả năng tương thích.

Tính năng của ECMAScript 6

Đây là danh sách 10 tính năng tốt nhất của ES6 cho những kỹ sư phần mềm bận rộn (sắp xếp ngẫu nhiên):

  1. Default Parameters in ES6
  2. Template Literals in ES6
  3. Multi-line String in ES6
  4. Destructuring Assignment in ES6
  5. Enhanced Object Literals in ES6
  6. Arrow Function in ES6
  7. Promises in ES6
  8. Block-Scoped Constructs Let and Cont
  9. Classes in ES6
  10. Modules in ES6

chi tiết hơn các bạn có thể tham khảo tại đây hoặc tại đây

TypeScript là gì?

TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, nó có thể được coi là một phiên bản nâng cao của Javascript bởi việc bổ sung tùy chọn kiểu tĩnh và lớp hướng đối tượng mà điều này không có ở Javascript. TypeScript có thể sử dụng để phát triển các ứng dụng chạy ở client-side (Angular2) và server-side (NodeJS).

TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6) như classes, modules. Không dừng lại ở đó nếu như ECMAScript 2017 ra đời thì mình tin chắc rằng TypeScript cũng sẽ nâng cấp phiên bản của mình lên để sử dụng mọi kỹ thuật mới nhất từ ECMAScript. Thực ra TypeScript không phải ra đời đầu tiên mà trước đây cũng có một số thư viện như CoffeScript và Dart được phát triển bởi Google, tuy nhiên điểm yếu là hai thư viện này sư dụng cú pháp mới hoàn toàn, điều này khác hoàn toàn với TypeScript, vì vậy tuy ra đời sau nhưng TypeScript vẫn đang nhận được sự đón nhận từ các lập trình viên.

Tuy rằng TypeScript vẫn đang trong quá trình phát triển. Mọi thứ có thể sẽ thay đổi trong tương lai. Trong quá trình nguyên cứu TypeScript, tôi chỉ thấy cái khó của nó nằm ở cú pháp mới lạ. Còn về phần tính năng, khái niệm thì khá quen thuộc.

Tham khảo


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí