Что такое 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, также известную как ECMAScript.

Важно отметить, что «JavaScript» Брендана Эйха - это не тот же JavaScript, который является диалектом ECMAScript. Он создал базовый язык, который был переименован в ECMAScript, который отличается от JavaScript, который производители браузеров реализуют в настоящее время.

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

Медер Омуралиев
источник
33
Разве это не делает Javascript подмножеством ECMAScript, если ECMAScript является ядром?
Ryan Amos
15
В JavaScript (исторически) есть вещи, которых нет в ECMAScript. JavaScript (исторически пытается) иметь все, что есть в ECMAScript. Поэтому сообщение правильное, ECMAScript - это подмножество JavaScript. Однако оба они находятся довольно близко друг к другу (хотя ActionScript больше не считается языком ECMAScript, он сильно разошелся, хотя и имел свои корни в нем). Термины ES и JS почти взаимозаменяемы.
Натан Уолл,
22
Я не думаю, что будет правильным сказать, что «ECMAScript - это подмножество JavaScript». Вместо этого статья в Википедии, которую вы цитируете, указывает, что ECMAScript является стандартом, а JavaScript - хорошо известной реализацией этого стандарта (с расширениями) .
DavidRR
2
Я думаю , что ты хотел сказатьECMAScript is a superset of Javascript
Callat
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, таких как ссылки и lynx, которых нет, кроме них есть: links2, w3m, elinks и edbrowse. Большинство браузеров CLI также не поддерживают JS.
Кассио Сеффрин,
16

ECMA означает - Европейская ассоциация производителей компьютеров. ECMAScript - это стандарт языка сценариев. Он определяет основные функции, которые должен предоставлять язык сценариев, и то, как эти функции должны быть реализованы. Javascript изначально создавался в Netscape, и они хотели стандартизировать язык. Поэтому они представили язык в Европейскую ассоциацию производителей компьютеров (ECMA) для стандартизации. Но возникли проблемы с товарным знаком с названием Javascript, и стандарт стал называться ECMAScript, как и сегодня.

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

Кришна
источник
2

ECMA - это организация, которая стандартизировала JavaScript. Они назвали язык ECMAScript, однако «JavaScript» был термином, выигравшим «конкурс имен».

cateof
источник
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 также можно использовать для сценариев на стороне сервера. Тогда все геолокация или медиа-API не имеют смысла. Таким образом, 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 действительно имеет только очень базовый набор функций (если они вообще есть).

haferblues
источник