JavaScript ES8

ECMAScript thường được sử dụng cho tập lệnh phía máy khách trên World Wide Web và nó ngày càng được sử dụng nhiều hơn để viết các ứng dụng và dịch vụ phía máy chủ bằng Node. js và các môi trường thời gian chạy khác

ECMAScript, ECMA-262 và JavaScript[sửa mã nguồn]

ECMA-262 hoặc Đặc tả ngôn ngữ ECMAScript, xác định Ngôn ngữ ECMAScript hoặc chỉ ECMAScript. ECMA-262 chỉ xác định cú pháp ngôn ngữ và ngữ nghĩa của API lõi, chẳng hạn như Array, Function và globalThis, trong khi việc triển khai JavaScript hợp lệ thêm chức năng của riêng chúng như xử lý đầu vào-đầu ra và hệ thống tệp

Lịch sử[sửa]

Đặc tả ECMAScript là một đặc tả tiêu chuẩn của ngôn ngữ kịch bản được phát triển bởi Brendan Eich của Netscape; . Tháng 12 năm 1995, Sun Microsystems và Netscape công bố JavaScript trong một thông cáo báo chí. Vào tháng 11 năm 1996, Netscape đã công bố một cuộc họp của tổ chức tiêu chuẩn quốc tế Ecma để thúc đẩy tiêu chuẩn hóa JavaScript. Phiên bản đầu tiên của ECMA-262 được Đại hội đồng Ecma thông qua vào tháng 6 năm 1997. Một số phiên bản của tiêu chuẩn ngôn ngữ đã được xuất bản kể từ đó. Cái tên "ECMAScript" là sự thỏa hiệp giữa các tổ chức liên quan đến việc tiêu chuẩn hóa ngôn ngữ, đặc biệt là Netscape và Microsoft, những tranh chấp của họ đã chi phối các phiên tiêu chuẩn ban đầu. Eich nhận xét rằng "ECMAScript luôn là một tên thương mại không mong muốn nghe giống như một bệnh ngoài da. " ECMAScript đã được chính thức hóa thông qua ngữ nghĩa hoạt động bằng công việc tại Đại học Stanford và Khoa Điện toán, Đại học Hoàng gia Luân Đôn để phân tích và tiêu chuẩn hóa bảo mật

Lịch sử phiên bản[sửa mã nguồn]

Đặc điểm[sửa]

Ngôn ngữ ECMAScript bao gồm các tính năng dựa trên cấu trúc, động, chức năng và nguyên mẫu

Mệnh lệnh và cấu trúc[sửa | sửa mã nguồn]

ECMAScript JavaScript hỗ trợ lập trình có cấu trúc kiểu C. Trước đây, JavaScript chỉ hỗ trợ phạm vi chức năng bằng cách sử dụng từ khóa var, nhưng ECMAScript 2015 đã thêm từ khóa letconst cho phép JavaScript hỗ trợ cả phạm vi khối và phạm vi chức năng. JavaScript hỗ trợ chèn dấu chấm phẩy tự động, nghĩa là dấu chấm phẩy thường được sử dụng để kết thúc câu lệnh trong C có thể bị bỏ qua trong JavaScript

Giống như các ngôn ngữ kiểu C, luồng điều khiển được thực hiện với các câu lệnh while, for, do / while, if / elseswitch. Các chức năng được nhập yếu và có thể chấp nhận và trả về bất kỳ loại nào. Các đối số không được cung cấp mặc định là let0

Đánh máy yếu[sửa]

ECMAScript được gõ yếu. Điều này có nghĩa là một số loại nhất định được gán hoàn toàn dựa trên thao tác đang được thực hiện. Tuy nhiên, có một số điều kỳ quặc trong việc triển khai chuyển đổi một biến từ loại này sang loại khác của JavaScript. Những điều kỳ quặc này đã là chủ đề của một cuộc nói chuyện mang tên Wat

Năng động[sửa]

ECMAScript được gõ động. Do đó, một loại được liên kết với một giá trị chứ không phải là một biểu thức. ECMAScript hỗ trợ nhiều cách khác nhau để kiểm tra loại đối tượng, bao gồm cả cách gõ vịt

Phiên dịch [ chỉnh sửa ]

Kể từ ES 2015, việc phiên mã JavaScript đã trở nên rất phổ biến. Transpilation là quá trình biên dịch từ nguồn sang nguồn trong đó các phiên bản JavaScript mới hơn được sử dụng và trình chuyển mã viết lại mã nguồn để nó được hỗ trợ bởi các trình duyệt cũ hơn. Thông thường, các bộ chuyển mã sẽ chuyển mã xuống ES3 để duy trì khả năng tương thích với tất cả các phiên bản trình duyệt. Các cài đặt để chuyển mã sang một phiên bản cụ thể có thể được định cấu hình theo nhu cầu. Dịch mã bổ sung thêm một bước cho quy trình xây dựng và đôi khi được thực hiện để tránh cần polyfill. Polyfills tạo các tính năng mới cho các môi trường cũ thiếu chúng. Polyfill thực hiện việc này trong thời gian chạy trong trình thông dịch, chẳng hạn như trình duyệt của người dùng hoặc trên máy chủ. Thay vào đó, phiên mã sẽ tự viết lại mã ECMA trong giai đoạn xây dựng của quá trình phát triển trước khi đến trình thông dịch

Sự phù hợp [ chỉnh sửa ]

Năm 2010, Ecma International bắt đầu phát triển bài kiểm tra tiêu chuẩn cho Ecma 262 ECMAScript. Test262 là bộ kiểm tra tuân thủ ECMAScript có thể được sử dụng để kiểm tra mức độ triển khai JavaScript tuân theo Đặc tả ECMAScript chặt chẽ như thế nào. Bộ kiểm tra chứa hàng nghìn bài kiểm tra riêng lẻ, mỗi bài kiểm tra một số yêu cầu cụ thể của đặc tả ECMAScript. Sự phát triển của Test262 là một dự án của Ủy ban kỹ thuật Ecma 39 (TC39). Khung thử nghiệm và các thử nghiệm riêng lẻ do các tổ chức thành viên của TC39 tạo ra và đóng góp cho Ecma để sử dụng trong Test262

Những đóng góp quan trọng được thực hiện bởi Google (Sputnik testsuite) và Microsoft, cả hai đều đã đóng góp hàng nghìn bài kiểm tra. Bộ thử nghiệm Test262 bao gồm 38014 thử nghiệm kể từ tháng 1 năm 2020. Thông số kỹ thuật ECMAScript thông qua ES7 được hỗ trợ tốt trong các trình duyệt web chính. Bảng dưới đây cho thấy tỷ lệ tuân thủ của các phiên bản phần mềm hiện tại đối với các phiên bản ECMAScript mới nhất

ES8 trong JavaScript là gì?

ES8 giới thiệu hai hàm xử lý chuỗi để đệm chuỗi . Các hàm này có thể được sử dụng để thêm khoảng trắng hoặc bất kỳ bộ ký tự mong muốn nào vào đầu và cuối của một giá trị chuỗi.

JavaScript ES8 được phát hành khi nào?

ES8 hoặc ECMAScript 2017 được phát hành vào năm 2017. Phiên bản này cho phép các phương pháp viết mã mới bằng JavaScript.

ES8 có được phát hành không?

ES8 đã được đưa vào sản xuất vào tháng 6 năm 2018 cho thị trường Trung Quốc và vào 30 tháng 9 năm 2021 nó đã được ra mắt tại Na Uy.

Phiên bản ES trong JavaScript là gì?

ECMAScript là tên chính thức của ngôn ngữ. Các phiên bản ECMAScript đã được viết tắt thành ES1, ES2, ES3, ES5 và ES6 . Kể từ năm 2016, các phiên bản được đặt tên theo năm (ECMAScript 2016, 2017, 2018, 2019, 2020).