Що таке ECMAScript?


118

У Visual Studio, коли я встановлюю свій тип скрипту на JavaScript, це з'являється як опція в intellisense.

Швидкий пошук Google виявив кульгаві результати, що змусило мене повірити, що це не дуже популярно використовувати.

  • Що це?
  • Хтось ним користується? (<script type="text/ecmascript">)
  • Чому?


Знання різниці між ECMAScript і Javascript також допомагає зрозуміти ECMAScript.
RBT

Відповіді:


169

JavaScript є підмножиною ECMAScript. JavaScript в основному є ECMAScript по своїй суті, але будується на ньому. Такі мови, як ActionScript, JavaScript, JScript, використовують основу ECMAScript. Для порівняння, AS / JS / JScript - це 3 різні машини, але всі вони використовують один і той же двигун ... Хоча кожен їх екстер'єр відрізняється, і для кожного було зроблено кілька модифікацій, щоб зробити його унікальним.

Історія полягає в тому, що Брендан Ейх створив Mocha, який став LiveScript і пізніше JavaScript. Netscape представив JavaScript компанії Ecma International , яка розробляє стандарти, і вона була перейменована в ECMA-262 aka ECMAScript.

Важливо зазначити, що "JavaScript" Брендана Ейха - це не той самий JavaScript, який є діалектом ECMAScript. Він створив основну мову, яка була перейменована в ECMAScript, яка відрізняється від JavaScript, який сьогодні застосовують постачальники браузерів.

http://en.wikipedia.org/wiki/ECMAScript


33
Хіба це не робить Javascript підмножиною ECMAScript, якщо основою є ECMAScript?
Райан Амос

15
У JavaScript (історично) є речі, які ECMAScript не має. У JavaScript (історично намагається) є все, що має ECMAScript. Тому повідомлення правильне, ECMAScript - це підмножина JavaScript. Однак обидва знаходяться досить близько один до одного (в той час, як ActionScript більше не вважається мовою ECMAScript, він так сильно розходився, хоча в ньому є коріння). Терміни ES та JS майже взаємозамінні.
Натан Уолл

22
Я не думаю, що можна сказати, що "ECMAScript - це підмножина JavaScript". Натомість викладена вами стаття у Вікіпедії вказує на те, що ECMAScript є стандартом і що JavaScript - це добре відома реалізація цього стандарту (з розширеннями) .
DavidRR

2
Я думаю, ти мав намір сказатиECMAScript is a superset of Javascript
Каллат

6
Оскільки Javascript реалізує ECMAScript, а також будує поверх нього, я б сказав, що Javascript для цього є суперкомплектом ECMAScript.
RayLoveless


32

ECMAScript = ES:

  • ECMAScript - це стандарт для мов сценаріїв.

  • Такі мови, як Javascript, базуються на стандарті ECMAScript.

  • Стандарт ECMA базується на декількох технологіях, найвідомішими - JavaScript (Netscape) та JScript (Microsoft).

  • ECMA означає Асоціацію європейських виробників комп'ютерів


З іншого боку:


JavaScript = JS:

  • JavaScript є найпопулярнішими реалізаціями стандарту ECMAScript.

  • Основні можливості Javascript засновані на стандарті ECMAScript, але Javascript також має інші додаткові функції, які не входять до специфікацій / стандарту ECMA.

  • ActionScript і JScript - це ще одна мова, яка реалізує ECMAScript.

  • JavaScript був поданий до ECMA для стандартизації, але через проблеми з товарними знаками з назвою Javascript стандарт став називатися ECMAScript.

  • У кожному браузері є інтерпретатор JavaScript.


Для отримання більш детальної інформації про цей замовлення повну відповідь тут. Яка різниця між JavaScript та ECMAScript?


майже у кожному браузері є підтримка JavaScript, але є багато браузерів CLI, таких як посилання та рись, яких немає, поряд з цим є: links2, w3m, elinks та edbrowse. Більшість браузерів CLI також не підтримують JS.
Кассіо Seffrin

16

ECMA - Європейська асоціація виробників комп'ютерів. ECMAScript - стандарт для мови сценаріїв. Він визначає основні функції, які має надавати мова сценаріїв, і як ці функції мають бути реалізовані. Javascript був спочатку створений у Netscape, і вони хотіли стандартизувати мову. Отже, вони подали мову до Європейської асоціації виробників комп'ютерів (ECMA) для стандартизації. Але виникли проблеми з товарними знаками з назвою Javascript, і стандарт став називатися ECMAScript, що є ім'ям, яке він має і сьогодні.

Таким чином, ви можете використовувати будь-яку мову сценаріїв, яка реалізує стандарт ECMA, оскільки веб-браузери підтримують інтерпретацію ECMAScript, коли ви вказуєте ( <script type="text/ecmascript">).


2

ECMA - це оргранізація, яка стандартизувала JavaScript. Вони назвали мову ECMAScript, проте "JavaScript" був терміном, який виграв "конкурс імен"


1

Ось інший погляд на цю тему. Це більш-менш з досвіду, я нічого не можу цитувати. Будь-який валідатор JavaScript і всі, хто працює з JavaScript, скажуть вам це

alert("hello World");

дійсний JavaScript. І я також погодився б.

Однак, валідатор ECMAScript, ймовірно, скаже вам, що він недійсний, тому що alert () не є частиною ECMAScript, а зазвичай є функцією JavaScript для браузерів. Існує багато функцій JavaScript, які мають сенс лише в середовищі браузера, fi window.navigator, window.document, WebSocket, navigator.geolocation. Дехто навіть сказав, що це не частина JavaScript, а частина HTML5, що не відповідає дійсності, оскільки HTML5 - це лише мова розмітки. Однак ці фантазійні нові функції часто називають HTML5, навіть якщо вони реалізовані в JavaScript.

JavaScript також може використовуватися для сценаріїв на стороні сервера. Тоді всі geolcation або media apis не мають сенсу. Отже JavaScript для сценаріїв на стороні сервера знову набагато ближче до ECMAScript, який не має таких типових функцій браузера.

Я не міг реально дізнатися, чи є об'єкт Math (наприклад, Math.sqrt (9)) частиною ECAMScript, чи ECMAScript насправді просто визначає синтаксис мови і не має ніяких вбудованих функціональних можливостей. Але один валідатор ECMAScript прийняв Math.sqrt (9) як дійсний ECMAScript, тоді як var test = window.document; не вдалося перевірити ECMA.

Незважаючи на те, що наступне посилання посилається на документацію JavaScript, це, на мою думку, є набором функцій (об'єктів та функцій) ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Отже, на мою думку, JavaScript дуже тісно пов'язаний з браузерами, тоді як ECMAScript насправді має лише дуже базовий набір функціональних можливостей (якщо він є).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.