Giải đáp thuật ngữ ES6 là gì - Các thông tin xoay quanh ES6
Tác giả: Bảo Vy 01-07-2024
Đối với các lập trình viên, khái niệm ES6 là gì chắc hẳn đã không còn quá xa lạ. Biết đến là một chuyện, nhưng thực chất vẫn có một số lượng không hề nhỏ lầm tưởng rằng đây là một loại ngôn ngữ hoàn toàn mới. Hãy cùng theo chân viecday365.com để tìm được lời giải đáp đúng đắn cho vấn đề này nhé!
1. ECMAScript - ES6 là gì?
Để trả lời câu hỏi “ES6 là gì?”, thì ECMA trong ECMAScript đề cập đến hiệp hội các nhà sản xuất máy tính Europen, nơi mà JavaScript 1.1 đã được đệ trình để tiêu chuẩn hóa vào năm 1997. Một ủy ban kỹ thuật đã được thành lập để chuẩn hóa cú pháp và ngữ nghĩa của một mục đích chung, chéo nền tảng và ngôn ngữ kịch bản trung lập với nhà cung cấp. Ủy ban bao gồm các nhà phát triển từ Sun Microsystems, Netscape Communication, Microsoft và nhiều công ty khác. Họ đã đưa ra ECMA-262, một tiêu chuẩn xác định một ngôn ngữ kịch bản mới và một ngôn ngữ kịch bản có mục đích chung được gọi là ECMAScript.
Tất cả các trình duyệt phải tuân thủ để tạo ra các triển khai JavaScript của riêng họ. Nhiều khi các nhà phát triển sử dụng JavaScript và ECMAScript như 2 ngôn ngữ tương đương với nhau. Nhưng thực chất, chúng có mối liên kết rất chặt chẽ, chứ không giống nhau.
Xem thêm: Rust là gì và cách sử dụng
2. Đặc tính của ES6 là gì?
2.1. ECMAScript không bị ràng buộc với trình duyệt web
ECMAScript là một ngôn ngữ kịch bản đa nền tảng, có mục đích chung và không bị ràng buộc riêng với các trình duyệt web. ECMA-262 xác định các tiêu chuẩn dựa trên đó có thể xây dựng ngôn ngữ kịch bản mạnh mẽ hơn. ECMA-262 xác định các phần sau của ngôn ngữ và hoàn toàn không tham chiếu đến các trình duyệt web:
- Cú pháp
- Các loại
- Các câu lệnh
- Từ khóa
- Từ dành riêng
- Các nhà khai thác
- Đối tượng toàn cầu
JavaScript triển khai ECMAScript thành một ngôn ngữ kịch bản hoàn thiện và mạnh mẽ hơn với nhiều phương thức đầu vào và đầu ra khác nhau mà các nhà phát triển có thể sử dụng để xây dựng các ứng dụng khác nhau.
Xem thêm: Promise JavaScript là gì? Khi nào nên sử dụng chúng?
2.2. Sự phù hợp, thích ứng của ECMAScript
Sự thích ứng của ES6 là gì? Khi nào thì một ngôn ngữ lập trình được coi là phù hợp với ECMAScript dựa trên các tiêu chuẩn được quy định trong ECMA-262? Bạn có thể thấy thông số kỹ thuật ECMAScript mới nhất, nhưng sự tuân thủ của cách triển khai ngôn ngữ có thể tóm tắt lại như sau:
- Việc triển khai phải hỗ trợ tất cả các phần của ngôn ngữ như đã đề cập trong tiêu chuẩn và được đánh dấu ở trên.
- Hỗ trợ tiêu chuẩn ký tự Unicode.
- Việc triển khai tuân thủ có thể thêm các kiểu, đối tượng, chức năng bổ sung, v.v., những thứ này không được chỉ định trong tài liệu đặc tả.
- Mở rộng hỗ trợ biểu thức chính quy được tích hợp sẵn.
Có một bộ thử nghiệm cho ECMA-262 có sẵn trên GitHub và được sử dụng để kiểm tra sự phù hợp với các tiêu chuẩn.
Xem thêm: Việc làm javascipt
3. Sự khác biệt giữa JavaScript và ES6 là gì?
Sự mơ hồ trong vấn đề phân biệt ECMAScript và JavaScript khiến cho việc áp dụng ngôn ngữ lập trình trở nên khó khăn. Vì vậy, hãy điểm sơ qua một vài đặc điểm về JavaScript để thấy được sự khác biệt nhé.
Một công cụ JavaScript có thể được coi là một chương trình hoặc một trình thông dịch đọc mã JavaScript của bạn và chuyển đổi nó thành một mã máy có thể hiểu được. Mỗi trình duyệt web chạy trên một công cụ khác nhau, và công cụ phổ biến nhất trong số đó là công cụ V8 của Google, công cụ này là mã nguồn mở và được triển khai bởi NodeJs. Dưới đây là một số ví dụ phổ biến về các trình duyệt khác nhau và các công cụ JavaScript mà chúng sử dụng:
- Google Chrome - V8 Engine
- Firefox - Spidermonkey
- Microsoft Edge - Chakra hiện cũng sử dụng V8 Engine.
- Safari - Nitro, còn được gọi là JavaScriptCore.
JavaScript Engine hoạt động như một trình thông dịch và được kẹp giữa mã máy và JavaScript Runtime (còn được gọi là JavaScript Host). Vì bây giờ chúng ta đã hiểu việc làm của JavaScript Engine, hãy đi sâu hơn và cố gắng hiểu JavaScript Runtime để thấy rõ hơn sự khác biệt giữa nó và ES6 là gì.
Thời gian chạy JavaScript (hay còn gọi là máy chủ JavaScript) có thể được hiểu là một vùng chứa sử dụng công cụ JavaScript để tạo các API mà các nhà phát triển phần mềm có thể sử dụng để tạo các ứng dụng JavaScript. Lấy ví dụ về thời gian chạy JavaScript trong trình duyệt, nó thường chứa các triển khai của JavaScript, cụ thể hơn cho trình duyệt. Thời gian chạy cho thứ gì đó như NodeJs sẽ có các triển khai cụ thể cụ thể hơn để chạy và xây dựng ứng dụng phía máy chủ bằng JavaScript.
Tóm lại, thời gian chạy của trình duyệt có thể có các triển khai cơ bản sau đây rất hữu ích để tạo các ứng dụng web:
- Cốt lõi: Sự triển khai cơ bản của JavaScript với tất cả các chức năng đầu vào và đầu ra mà các nhà phát triển có thể sử dụng. -
- Mô hình đối tượng tài liệu (DOM): Đây là những gì trình duyệt hiển thị như một hệ thống phân cấp các nút được hiển thị cho máy khách hoặc người dùng cho XML và HTML.
- Mô hình đối tượng trình duyệt (BOM): Đây là thứ cho phép các nhà phát triển thao tác trên cửa sổ trình duyệt. Sử dụng BOM, các nhà phát triển có thể truy cập các tính năng của trình duyệt và thao tác chúng bên ngoài ngữ cảnh DOM hoặc trang đang được hiển thị.
Như vậy, qua các thông tin trên, chúng ta hoàn toàn có thể tóm tắt và đúc kết một số đặc điểm khác biệt giữa ECMAScript và JavaScript như sau:
- ES6:
+) ES6 sẽ giải quyết nhiều thiếu sót về ngôn ngữ cốt lõi được giải quyết trong TypeScript và CoffeeScript.
+) ES6 là phiên bản tiếp theo của JavaScript, nhưng nó không chạy trong các trình duyệt ngày nay.
+) Có khá nhiều bộ chuyển đổi sẽ xuất ES5 để chạy trên các trình duyệt.
- JavaScript:
+) JavaScript là cách triển khai phổ biến nhất của Tiêu chuẩn ECMAScript.
+) Về cơ bản, các chức năng, nhiệm vụ chính của Javascript dựa trên tiêu chuẩn ECMAScript, nhưng Javascript cũng có thêm các tính năng ưu việt khác không có trong tiêu chuẩn và đặc tả của ECMA.
+) ActionScript và JScript là các ngôn ngữ khác triển khai ECMAScript.
+) JavaScript đã được đệ trình lên ECMA để tiêu chuẩn hóa nhưng do các vấn đề về nhãn hiệu với tên Javascript, tiêu chuẩn này được gọi là ECMAScript.
+) Mọi trình duyệt đều có trình thông dịch JavaScript.
4. Thuật ngữ ES2015, ES Harmony hay ES6 có ý nghĩa gì?
Đây là phiên bản thứ sáu của ECMA-262, được phát hành vào năm 2015, được gọi là ES6, ES2015 và ES Harmony. Về cơ bản tất cả các thuật ngữ này đề cập đến cùng một phiên bản của ECMA-262. Do đó, ECMA đã xuất bản một ấn bản thông số kỹ thuật mới hàng năm, vì vậy ấn bản thứ 7 đã ra mắt vào năm 2016.
Phiên bản thứ sáu của ECMA-262 mang đến bộ sưu tập các cải tiến quan trọng và đáng mong đợi nhất cho ECMAScript. Do đó, ES6 được coi là một cột mốc quan trọng và thay đổi cách chúng ta sử dụng JavaScript. Đây là lý do tại sao ES6 được coi là một thay đổi lớn và một cách viết JavaScript mới. Nó mang lại hỗ trợ chính thức cho các lớp, mô-đun, trình vòng lặp, trình tạo, hàm mũi tên, hứa hẹn, phản ánh và một loạt các kiểu dữ liệu mới. Vậy các trình duyệt có hỗ trợ các tiêu chuẩn mới nhất một cách nhanh chóng không?
Câu trả lời là không! Mức độ chấp nhận ES6 không nhất quán trên tất cả các trình duyệt. Ví dụ, Internet Explorer 11 chỉ tuân thủ các tiêu chuẩn ES5 chứ không phải ES6, dẫn đến nhiều sự không tương thích và nhầm lẫn xung quanh các trình duyệt khác nhau hỗ trợ các phiên bản khác nhau của Tiêu chuẩn ECMAScript. Có một cách viết ứng dụng thanh lịch bằng cách sử dụng các tính năng mới nhất của JavaScript và vẫn tuân thủ các trình duyệt cũ.
Hy vọng những kiến thức mà viecday365.com chia sẻ đã giúp bạn giải đáp câu hỏi “ES6 là gì?”, và mong rằng các bạn sẽ có thể áp dụng ECMAScript một cách tối ưu trong công việc nhé!