Tại sao JavaScript được gọi là ES6?

Phải mất một thời gian dài để hoàn thành nó, nhưng ECMAScript 6, phiên bản tiếp theo của JavaScript, cuối cùng đã trở thành hiện thực

Các phần tiếp theo giải thích các khái niệm quan trọng trong thế giới ES6

1. 1 TC39 (Ủy ban kỹ thuật Ecma 39)

TC39 (Ủy ban kỹ thuật Ecma 39) là ủy ban phát triển JavaScript. Các thành viên của nó là các công ty (trong số những người khác, tất cả các nhà cung cấp trình duyệt lớn). TC39 họp định kỳ, các cuộc họp của TC39 đều có sự tham gia của đại biểu do thành viên cử và chuyên gia được mời. Biên bản cuộc họp có sẵn trực tuyến và cung cấp cho bạn ý tưởng hay về cách thức hoạt động của TC39

1. 2 ECMAScript 6 được thiết kế như thế nào

Quy trình thiết kế ECMAScript 6 tập trung vào các đề xuất cho các tính năng. Các đề xuất thường được kích hoạt bởi các đề xuất từ ​​cộng đồng nhà phát triển. Để tránh thiết kế bởi ủy ban, các đề xuất được duy trì bởi những người tiên phong (1–2 đại biểu của ủy ban)

Một đề xuất trải qua các bước sau trước khi nó trở thành một tiêu chuẩn

  • Phác thảo (không chính thức. “đề xuất người rơm”). Mô tả đầu tiên về tính năng được đề xuất
  • Đề nghị. Nếu TC39 đồng ý rằng một tính năng là quan trọng, tính năng đó sẽ được chuyển sang trạng thái đề xuất chính thức. Điều đó không đảm bảo nó sẽ trở thành một tiêu chuẩn, nhưng nó làm tăng đáng kể cơ hội của nó. Hạn chót cho các đề xuất ES6 là tháng 5 năm 2011. Không có đề xuất mới lớn nào được xem xét sau đó
  • Triển khai. Các tính năng được đề xuất phải được triển khai. Lý tưởng nhất là trong hai công cụ JavaScript. Việc triển khai và phản hồi từ cộng đồng định hình đề xuất khi nó phát triển
  • Tiêu chuẩn. Nếu đề xuất tiếp tục chứng minh bản thân và được TC39 chấp nhận, thì cuối cùng đề xuất đó sẽ được đưa vào một phiên bản của tiêu chuẩn ECMAScript. Tại thời điểm này, nó là một tính năng tiêu chuẩn

[Nguồn của phần này. “Quá trình hài hòa” của David Herman. ]

1. 2. 1 Quá trình thiết kế sau ES6

Bắt đầu với ECMAScript 2016 (ES7), TC39 sẽ phát hành theo khung thời gian. Một phiên bản mới của ECMAScript sẽ được phát hành hàng năm, với bất kỳ tính năng nào đã sẵn sàng vào thời điểm đó. Điều đó có nghĩa là kể từ bây giờ, các phiên bản ECMAScript sẽ được nâng cấp tương đối nhỏ. Để biết thêm thông tin về quy trình mới, bao gồm các đề xuất tính năng đã hoàn thành và sắp ra mắt, hãy tham khảo kho lưu trữ GitHub ecma262

1. 3 JavaScript so với ECMAScript

JavaScript là cái mà mọi người gọi là ngôn ngữ, nhưng tên đó đã được đăng ký nhãn hiệu (bởi Oracle, công ty đã kế thừa nhãn hiệu từ Sun). Do đó, tên chính thức của JavaScript là ECMAScript. Cái tên đó xuất phát từ tổ chức tiêu chuẩn Ecma, nơi quản lý tiêu chuẩn ngôn ngữ. Kể từ khi thành lập ECMAScript, tên của tổ chức đã thay đổi từ từ viết tắt “ECMA” thành tên riêng “Ecma”

Các phiên bản của JavaScript được xác định bởi các thông số kỹ thuật mang tên chính thức của ngôn ngữ. Do đó, phiên bản tiêu chuẩn đầu tiên của JavaScript là ECMAScript 1, viết tắt của “Đặc tả ngôn ngữ ECMAScript, Phiên bản 1”. ECMAScript x thường được viết tắt là ESx

1. 4 Nâng cấp lên ES6

Các bên liên quan trên web là

  • Trình triển khai các công cụ JavaScript
  • Các nhà phát triển ứng dụng web
  • người dùng

Các nhóm này có rất ít quyền kiểm soát lẫn nhau. Đó là lý do tại sao việc nâng cấp một ngôn ngữ web lại rất khó khăn

Một mặt, việc nâng cấp các công cụ là một thách thức, bởi vì chúng phải đối mặt với tất cả các loại mã trên web, một số mã đã rất cũ. Bạn cũng muốn nâng cấp động cơ tự động và không gây chú ý cho người dùng. Do đó, ES6 là superset của ES5, không có gì bị loại bỏ. ES6 nâng cấp ngôn ngữ mà không giới thiệu phiên bản hoặc chế độ. Nó thậm chí còn quản lý để biến chế độ nghiêm ngặt thành mặc định thực tế (thông qua các mô-đun), mà không làm tăng khoảng cách giữa nó và chế độ cẩu thả. Cách tiếp cận đã được thực hiện được gọi là "Một JavaScript" và được giải thích trong

Mặt khác, việc nâng cấp mã là một thách thức, bởi vì mã của bạn phải chạy trên tất cả các công cụ JavaScript được đối tượng mục tiêu của bạn sử dụng. Do đó, nếu bạn muốn sử dụng ES6 trong mã của mình, bạn chỉ có hai lựa chọn. Bạn có thể đợi cho đến khi không còn ai trong đối tượng mục tiêu của mình sử dụng công cụ không phải ES6 nữa. Điều đó sẽ mất nhiều năm; . r. t. ES5 khi ES6 trở thành tiêu chuẩn vào tháng 6 năm 2015. Và ES5 đã được chuẩn hóa vào tháng 12 năm 2009. Hoặc bạn có thể biên dịch ES6 sang ES5 và sử dụng ngay. Thông tin thêm về cách thực hiện điều đó được cung cấp trong cuốn sách “Thiết lập ES6”, có thể đọc trực tuyến miễn phí

Xung đột mục tiêu và yêu cầu trong thiết kế ES6

  • Mục tiêu là khắc phục những cạm bẫy của JavaScript và thêm các tính năng mới
  • Yêu cầu là cả hai cần phải được thực hiện mà không vi phạm mã hiện có và không thay đổi bản chất nhẹ của ngôn ngữ

1. 5 mục tiêu cho ES6

Trang dự án ban đầu cho Harmony/ES6 đề cập đến một số mục tiêu. Trong các phần phụ sau đây, tôi đang xem xét một số trong số chúng

1. 5. 1 mục tiêu. Hãy là một ngôn ngữ tốt hơn

mục tiêu là. Hãy là một ngôn ngữ tốt hơn để viết

  1. ứng dụng phức tạp;
  2. các thư viện (có thể bao gồm cả DOM) được chia sẻ bởi các ứng dụng đó;
  3. trình tạo mã nhắm mục tiêu phiên bản mới

Mục tiêu phụ (i) thừa nhận rằng các ứng dụng viết bằng JavaScript đã phát triển rất lớn. Một tính năng chính của ES6 đáp ứng mục tiêu này là các mô-đun tích hợp sẵn

Các mô-đun cũng là một câu trả lời cho mục tiêu (ii). Bên cạnh đó, DOM nổi tiếng là khó triển khai trong JavaScript. nên giúp đỡ ở đây

Một số tính năng chủ yếu được thêm vào để giúp biên dịch sang JavaScript dễ dàng hơn. Hai ví dụ là

  • Math.fround() – làm tròn số thành số float 32 bit
  • Math.imul() – nhân hai số nguyên 32 bit

Cả hai đều hữu ích cho, e. g. , biên dịch C/C++ sang JavaScript qua Emscripten

1. 5. 2 mục tiêu. Cải thiện tương tác

mục tiêu là. Cải thiện hoạt động tương tác, áp dụng các tiêu chuẩn thực tế nếu có thể

Ví dụ là

  • Các lớp học. dựa trên cách các hàm tạo hiện đang được sử dụng
  • mô-đun. lấy ý tưởng thiết kế từ định dạng mô-đun CommonJS
  • chức năng mũi tên. có cú pháp được mượn từ CoffeeScript
  • Tham số chức năng được đặt tên. Không có hỗ trợ tích hợp cho các tham số được đặt tên. Thay vào đó, thực tiễn đặt tên tham số hiện có thông qua đối tượng chữ được hỗ trợ thông qua

1. 5. 3 mục tiêu. lập phiên bản

mục tiêu là. Giữ phiên bản đơn giản và tuyến tính nhất có thể

Như đã đề cập trước đây, ES6 tránh lập phiên bản qua “”. Trong cơ sở mã ES6, mọi thứ đều là ES6, không có phần nào dành riêng cho ES5

Sự ra đời của đặc tả ES6 liệt kê tất cả các tính năng mới

Một số cải tiến chính của [ECMAScript 6] bao gồm các mô-đun, khai báo lớp, phạm vi khối từ vựng, trình lặp và trình tạo, hứa hẹn cho lập trình không đồng bộ, mẫu phá hủy và lệnh gọi đuôi thích hợp. Thư viện tích hợp ECMAScript đã được mở rộng để hỗ trợ trừu tượng hóa dữ liệu bổ sung bao gồm bản đồ, bộ và mảng giá trị số nhị phân cũng như hỗ trợ bổ sung cho các ký tự bổ sung Unicode trong chuỗi và biểu thức chính quy. Các phần tích hợp hiện có thể mở rộng thông qua phân lớp

Có ba loại tính năng chính

  • Cú pháp tốt hơn cho các tính năng đã tồn tại (e. g. qua thư viện). Ví dụ
  • Chức năng mới trong thư viện tiêu chuẩn. Ví dụ
  • Các tính năng hoàn toàn mới. Ví dụ

1. 7 Sơ lược về lịch sử của ECMAScript

Phần này mô tả những gì đã xảy ra trên đường đến ECMAScript 6

1. 7. 1 Những năm đầu. ECMAScript 1–3

  • ECMAScript 1 (tháng 6 năm 1997) là phiên bản đầu tiên của tiêu chuẩn ngôn ngữ JavaScript
  • ECMAScript 2 (tháng 6 năm 1998) có những thay đổi nhỏ, để giữ cho thông số kỹ thuật đồng bộ với một tiêu chuẩn ISO riêng cho JavaScript
  • ECMAScript 3 (tháng 12 năm 1999) đã giới thiệu nhiều tính năng đã trở thành một phần phổ biến của ngôn ngữ này, như được mô tả trong phần giới thiệu đặc tả ES6. “[…] biểu thức chính quy, xử lý chuỗi tốt hơn, câu lệnh điều khiển mới, xử lý ngoại lệ thử/bắt, định nghĩa lỗi chặt chẽ hơn, định dạng cho đầu ra dạng số và các cải tiến khác. ”

1. 7. 2 ECMAScript 4 (bị bỏ rơi vào tháng 7 năm 2008)

Công việc trên ES4 bắt đầu sau khi phát hành ES3 vào năm 1999. Vào năm 2003, một báo cáo tạm thời đã được phát hành sau đó công việc trên ES4 bị tạm dừng. Các tập hợp con của ngôn ngữ được mô tả trong báo cáo tạm thời đã được triển khai bởi Adobe (trong ActionScript) và bởi Microsoft (trong JScript. NET)

Vào tháng 2 năm 2005, Jesse James Garrett đã quan sát thấy rằng sự kết hợp của các kỹ thuật đã trở nên phổ biến để triển khai các ứng dụng giao diện người dùng động trong JavaScript. Ông gọi những kỹ thuật đó là Ajax. Ajax đã kích hoạt một lớp ứng dụng web hoàn toàn mới và dẫn đến sự quan tâm ngày càng tăng đối với JavaScript

Điều đó có thể đã góp phần giúp TC39 tiếp tục hoạt động trên ES4 vào mùa thu năm 2005. Họ dựa ES4 trên ES3, báo cáo ES4 tạm thời và trải nghiệm với ActionScript và JScript. NET

Hiện đã có hai nhóm làm việc trên các phiên bản ECMAScript trong tương lai

  • ECMAScript 4 được thiết kế bởi Adobe, Mozilla, Opera và Google và là một bản nâng cấp lớn. Bộ tính năng theo kế hoạch của nó bao gồm
    • Lập trình trên diện rộng (các lớp, giao diện, không gian tên, gói, đơn vị chương trình, chú thích loại tùy chọn và kiểm tra và xác minh loại tĩnh tùy chọn)
    • Lập trình và viết kịch bản tiến hóa (kiểu cấu trúc, gõ vịt, định nghĩa kiểu và đa phương thức)
    • Xây dựng cấu trúc dữ liệu (các loại được tham số hóa, getters và setters và các phương thức cấp meta)
    • Kiểm soát trừu tượng (các lệnh gọi đuôi, trình vòng lặp và trình tạo thích hợp)
    • Xem xét nội tâm (loại đối tượng meta và dấu ngăn xếp)
  • ECMAScript 3. 1 được thiết kế bởi Microsoft và Yahoo. Nó được lên kế hoạch như một tập hợp con của ES4 và là bản nâng cấp gia tăng của ECMAScript 3, với các bản sửa lỗi và các tính năng mới nhỏ. ECMAScript 3. 1 cuối cùng đã trở thành ECMAScript 5

Hai nhóm bất đồng về tương lai của JavaScript và căng thẳng giữa họ tiếp tục gia tăng

1. 7. 3 ECMAScript hài hòa

Vào cuối tháng 7 năm 2008, có một cuộc họp TC39 tại Oslo, kết quả được mô tả như sau bởi Brendan Eich

Không có gì bí mật khi cơ quan tiêu chuẩn JavaScript, Ủy ban kỹ thuật 39 của Ecma, đã bị chia rẽ trong hơn một năm, với một số thành viên ủng hộ ES4 […] và những người khác ủng hộ ES3. 1 […]. Bây giờ, tôi vui mừng báo cáo, sự phân chia đã kết thúc

Thỏa thuận đã được thực hiện tại cuộc họp bao gồm bốn điểm

  1. Phát triển bản cập nhật gia tăng của ECMAScript (đã trở thành ECMAScript 5)
  2. Phát triển một bản phát hành mới quan trọng, khiêm tốn hơn ECMAScript 4, nhưng phạm vi lớn hơn nhiều so với phiên bản sau ECMAScript 3. Phiên bản này có tên mã là Harmony, do tính chất của cuộc họp mà nó được hình thành.
  3. Các tính năng từ ECMAScript 4 sẽ bị loại bỏ. gói, không gian tên, ràng buộc sớm
  4. Các ý tưởng khác sẽ được phát triển với sự đồng thuận của tất cả TC39

Như vậy. Nhóm ES4 đã đồng ý làm cho Harmony ít triệt để hơn ES4, phần còn lại của TC39 đồng ý tiếp tục phát triển mọi thứ

Sự khác biệt giữa ES6 và JavaScript là gì?

ES5 là tên viết tắt của ECMAScript 5 và còn được gọi là ECMAScript 2009. Phiên bản thứ sáu của tiêu chuẩn ECMAScript là ES6 hoặc ECMAScript 6. Nó còn được gọi là ECMAScript 2015. ES6 là một cải tiến lớn trong ngôn ngữ JavaScript cho phép chúng tôi viết chương trình cho các ứng dụng phức tạp

Tại sao JavaScript được gọi là ECMAScript?

Nó chỉ định ngôn ngữ tập lệnh có mục đích chung . Ngôn ngữ được gọi là ECMAScript. Tiêu chuẩn ECMAScript xác định các quy tắc, chi tiết và nguyên tắc mà ngôn ngữ kịch bản phải tuân thủ để được coi là tuân thủ ECMAScript. Vậy đó là ECMAScript.

Tại sao ES6 tốt hơn JavaScript?

ES6 hỗ trợ cú pháp lớp . Điều này phản ánh các ngôn ngữ lập trình khác, nhưng ES6 sử dụng phong cách truyền thống để xác định các lớp và kế thừa và ánh xạ nó tới chuỗi nguyên mẫu tương ứng. Đây là một thay đổi nhỏ, nhưng nó có thể giúp viết mã hướng đối tượng trong ES6 mượt mà hơn rất nhiều so với các ngôn ngữ khác.

ES6 được gọi chính thức là gì?

ECMAScript 2015 còn được gọi là ES6 và ECMAScript 6.