Đây là một cái nhìn khác về chủ đề này. Nó ít nhiều từ kinh nghiệm, tôi không thể trích dẫn bất cứ điều gì. Bất kỳ trình xác thực JavaScript nào và mọi người làm việc với JavaScript sẽ cho bạn biết rằng
alert("hello World");
là JavaScript hợp lệ. Và tôi cũng đồng ý.
Tuy nhiên, trình xác thực ECMAScript có thể sẽ cho bạn biết nó không hợp lệ, vì alert () không phải là một phần của ECMAScript, mà là một tính năng thường thấy của JavaScript dành cho trình duyệt. Có nhiều tính năng của JavaScript, chỉ có ý nghĩa trong môi trường trình duyệt, fi window.navigator, window.document, WebSocket, Navigator.geolocation. Một số người thậm chí còn nói rằng đây không phải là một phần của JavaScript mà là một phần của HTML5, điều này không đúng, bởi vì HTML5 chỉ là ngôn ngữ đánh dấu. Tuy nhiên, những tính năng mới lạ mắt này thường được gọi là HTML5, ngay cả khi chúng được triển khai bằng JavaScript.
JavaScript cũng có thể được sử dụng cho kịch bản phía máy chủ. Sau đó, tất cả các định vị địa lý hoặc apis phương tiện không có ý nghĩa. Vì vậy, JavaScript cho kịch bản phía máy chủ lại gần giống với ECMAScript, vốn không có các tính năng trình duyệt điển hình này.
Tôi thực sự không thể tìm ra liệu đối tượng Math (ví dụ: Math.sqrt (9)) có phải là một phần của ECAMScript hay không, hay liệu ECMAScript thực sự chỉ xác định cú pháp của ngôn ngữ và không có chức năng nào được xây dựng. Nhưng một trình xác thực ECMAScript đã chấp nhận Math.sqrt (9) là ECMAScript hợp lệ, trong khi var test = window.document; không xác thực được ECMA.
Mặc dù liên kết sau liên kết nó với một tài liệu JavaScript, theo tôi đây là bản xây dựng trong bộ tính năng (đối tượng và chức năng) của ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects
Vì vậy, theo ý kiến của tôi, JavaScript được gắn rất chặt chẽ với các trình duyệt, trong khi ECMAScript thực sự chỉ có một bộ chức năng rất cơ bản (nếu có).