Khá nhiều tất cả các ngôn ngữ trưởng thành được xác định bởi một đặc tả và các trình biên dịch hoặc trình thông dịch cố gắng tuân theo tiêu chuẩn được xác định trong đặc tả đó. Nhưng rất hiếm khi họ thành công, trừ khi tiêu chuẩn được xác định bởi tác giả của ngôn ngữ.
Bạn có thể tìm thấy tiêu chuẩn C ++ 2003 , đặc tả C # 4 , đặc tả Java 7 và nhiều hơn nữa trực tuyến. Nhiều trong số này có số tiêu chuẩn hóa ECMA hoặc ISO. Đây chỉ là các tổ chức mà bạn có thể đăng ký một tiêu chuẩn và làm cho nó chính thức hơn.
Ruby trong lịch sử đã làm mọi thứ khác đi một chút, có một bộ kiểm tra thực thi như một đặc điểm kỹ thuật . Vì vậy, nếu bạn muốn viết một trình thông dịch và gọi nó là Ruby tiêu chuẩn, bạn chỉ cần tạo một trình thông dịch vượt qua tất cả các bài kiểm tra đó. Nhưng thậm chí Ruby có khả năng trở thành một đặc điểm kỹ thuật chính thức hơn cuối cùng.
Javascript không khác, ngoại trừ có thể theo cách nó đã phát triển.
Javascript lần đầu tiên được tạo bởi Netscape. Họ gọi nó là LiveScript, nhưng nó trông tương tự như Java và họ đã cắt giảm một thỏa thuận với Sun về cái tên, điều này mang lại lợi ích cho cả việc tiếp thị của Netscape và Java. Microsoft đã có VBScript và (vì lý do có lẽ bị mất để phỏng đoán) về cơ bản đã sao chép Javascript, nhưng tên này thuộc sở hữu của Sun, vì vậy họ đã táo tợn gọi nó là JScript.
Nhưng JScript, mặc dù rất giống với cú pháp Javascript, đã sử dụng rất nhiều COM - ví dụ, IE5 và 6 khởi tạo một đối tượng XMLHttpRequest bằng cách sử dụng new ActiveXObject("Microsoft.XMLHTTP");
.
Và như vậy, "phương ngữ" song song, tương tự nhưng cũng khác nhau của Javascript đã ra đời. Theo thời gian, các nhóm khác nhau sở hữu các trình duyệt có thị phần ít hơn IE đã cố gắng chuẩn hóa ngôn ngữ và trong nhiều năm Microsoft đã chống lại. Cho đến khi V8.
V8 đã nhanh. Nó thiết lập một tiêu chuẩn thị trường hoàn toàn mới. Nó làm cho mọi thứ khác trông nghèo nàn.
Và, thông qua các vụ kiện chống độc quyền khác nhau chống lại Microsoft, IE đã mất thị phần. Đột nhiên, Microsoft quan tâm đến việc hỗ trợ tiêu chuẩn hóa. Chúng tôi chưa ở đó, nhưng nó đang đi đúng hướng.
Trong khi đó, động cơ V8 là mã nguồn mở, cho phép mọi người bắt đầu nghĩ ra cách sử dụng mới cho một phân tích cú pháp Javascript nhanh, chẳng hạn như Node.js .
Nhưng, để trở lại câu hỏi của bạn: Javascript là gì? Đó là tên chung (và bản gốc) cho ECMAScript, một đặc điểm kỹ thuật cho ngôn ngữ nguyên mẫu thông thường, nhưng không dành riêng, được sử dụng để điều hướng và thao tác mô hình đối tượng miền trong một broswer.
ECMA-262 chỉ là định nghĩa tiêu chuẩn, giống như ECMA-334 là định nghĩa tiêu chuẩn cho C #. ECMAScript là tên duy nhất mà tất cả các bên quan tâm có thể đồng ý, từ năm 99, khi ECMA-262 được viết.