В чем разница между JavaScript и ECMAScript? - PullRequest
430 голосов
/ 27 мая 2009

В чем разница между ECMAScript и JavaScript? Из того, что я понял, ECMAScript - это стандарт, а JavaScript - это реализация. Это правильно?

Ответы [ 16 ]

558 голосов
/ 08 мая 2015

Я думаю, что должен быть небольшой урок истории.

JavaScript изначально назывался Mocha и изменился на Livescript, но в конечном итоге стал JavaScript.

Важно отметить, что JavaScript предшествовал ECMAscript, и история покажет вам, почему.

С самого начала JavaScript получил свое название от Java, и первоначально Брендану Эйху (создателю JS) было предложено разработать язык, похожий на Java для Интернета, для Netscape.

Однако Айх решил, что Java слишком сложен со всеми ее правилами, и поэтому намеревался создать более простой язык, который мог бы кодировать даже новичок. Это проявляется в таких вещах, как ослабление необходимости использовать точку с запятой.

После того, как язык был закончен, маркетинговая команда Netscape попросила Sun разрешить им назвать его JavaScript как маркетинговый ход и, следовательно, почему большинство людей, которые никогда не использовали JavaScript, считают, что это связано с Java.

Примерно через год или два после выпуска JavaScript в браузере IE Microsoft взял язык и начал создавать свои собственные реализации, такие как JScript. В то же время IE доминировал на рынке и вскоре после того, как Netscape пришлось закрыть свой проект.

Перед тем, как Netscape вышел из строя, они решили запустить стандарт, который будет направлять путь JavaScript, под названием ECMAScript.

У ECMAScript было несколько выпусков, и в 1999 году они выпустили свою последнюю версию (ECMAScript 3) перед тем, как перейти в спящий режим в течение следующих 10 лет. В течение этих 10 лет Microsoft доминировала над сценами, но в то же время они не улучшали свой продукт, и поэтому появился Firefox (во главе с Eich) и целая куча других браузеров, таких как Chrome, Opera.

ECMAScript выпустил 5-е издание в 2009 году (4-е издание было отменено) с такими функциями, как строгий режим. С тех пор ECMAScript набирает обороты и планирует выпустить свое 6-е издание через несколько месяцев с самыми большими изменениями, которые у него были до сих пор.

Список функций для ECMAScript 6 можно использовать здесь http://kangax.github.io/es5-compat-table/es6/, а также поддержку браузера. Вы даже можете начать писать Ecmascript 6, как вы делаете с CoffeeScript, и использовать компилятор для компиляции в Ecmascript 5.

ли ECMAScript язык и JavaScript является диалектом спорно, но не важно. Если вы продолжите думать так, это может сбить вас с толку. Там нет компилятора, который бы запускал ECMAScript, и я считаю, что JavaScript считается языком, который реализует стандарт ECMAScript.

Есть также другие заметные языки, которые реализуют ECMAScript, такие как ActionScript (используется для Flash)

179 голосов
/ 27 мая 2009

ECMAScript - это язык, тогда как JavaScript, JScript и даже ActionScript 3 называются «диалектами». Википедия проливает свет на это.

136 голосов
/ 17 ноября 2015

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.

ES5 = ECMAScript 5:

  • ES5 - версия ECMAScript (старая / текущая).

  • ES5 - это JavaScript, который вы знаете и используете в браузере сегодня.

  • ES5 не требуется этап сборки (транспортеры), чтобы преобразовать его во что-то, что будет работать в современных браузерах.

  • ECMAScript версии 5 была закончена в декабре 2009 года, последние версии всех основных браузеров (Chrome, Safari, Firefox и IE) реализовали версию 5.

  • Версия 5.1 была закончена в июне 2011 года

ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:

  • ES2015 является версией ECMAScript (новой / будущей).

  • Официально вместо ES6 следует использовать имя ES2015.

  • ES6 будет решать многие из основных языковых недостатков рассмотрены в Машинопись и CoffeeScript.

  • ES6 - это следующая итерация JavaScript, но она не работает в современных браузерах.

  • Существует довольно много транспортеров, которые экспортируют ES5 для работы в браузерах.

BabelJS:

  • BabelJS - самый популярный транспортер, преобразующий новый JavaScript ES6 в старый JavaScript ES5.

  • BabelJS позволяет писать следующее поколение JavaScript сегодня (означает ES2015).

  • BabelJS просто берет файл ES2015 и преобразует его в файл ES5.

  • Текущие версии браузеров теперь могут понимать новый код JavaScript (ES2015), даже если они еще не поддерживают его.

машинопись и CoffeeScript:

  • Оба обеспечивают синтаксический сахар поверх ES5 а затем transcompiled в ES5 совместимый JavaScript.

  • Вы пишете TypeScript или CoffeeScript, а затем преобразователь преобразует их в ES5 JavaScript.

42 голосов
/ 27 мая 2009

Технически ECMAScript - это язык, который каждый использует и внедряет - это спецификация, созданная много лет назад, когда Netscape и Microsoft сели и попытались стандартизировать сценарии между JavaScript (язык сценариев Netscape) и JScript (Microsoft).

Впоследствии все эти движки якобы реализуют ECMAScript, однако JavaScript (имя) теперь используется как по причинам традиционного именования, так и в качестве маркетингового термина Mozilla для их различных нестандартных расширений (которые они хотят иметь на самом деле "версия")

33 голосов
/ 27 апреля 2015

JavaScript = ECMAScript + DOM API ;

  • Спецификация языка ECMAScript® определяет всю логику для создания и редактирования объектов, массивов, чисел и т. Д. *

  • DOM API позволяет взаимодействовать с документами HTML / XML (например, document.getElementById('id');).

История именования JavaScript:

Мокко ► LiveScript ► JavaScript ► (в результате появилась часть JS) ECMA-262 ► ECMAScript ► JavaScript (состоит из ECMAScript + DOM API)

26 голосов
/ 06 июня 2016

Что такое ECMAScript, т. Е. ES?

ECMAScript - это стандарт для языка сценариев и Язык Javascript основан на стандарте ECMAScript.

Является ли Javascript точно таким же, как ECMAScript?

  • Нет, Javascript не совсем эквивалентен ECMAScript.
  • Основные функции Javascript основаны на стандарте ECMAScript, но Javascript также имеет другие дополнительные функции, которых нет в спецификации / стандарте ECMA.

JavaScript = ECMAScript + DOM API;

DOM API, например: document.getElementById('id');

Используют ли другие языки стандарт ECMAScript?

  • Да, есть языки, отличные от JavaScript, которые также используют стандарт ECMAScript в качестве своего ядра.
  • ActionScript (используется Adobe Flash) и JScript (используется Microsoft) - оба языка, которые реализуют стандарт ECMAScript.

Почему он называется ECMAScript?

  • Javascript был изначально создан в Netscape, и они хотели стандартизировать язык. Так, они представили язык в E европейский C компьютер M производителя A (ECMA) для стандартизации.
  • Но возникли проблемы с товарными знаками с именем Javascript, и стандарт стал называться ECMAScript, который также называется сегодня.
  • Из-за проблем с товарными знаками версия языка Microsoft называется JScript - даже несмотря на то, что по своей сути JScript является тем же языком, что и Javascript.
16 голосов
/ 27 мая 2009

Различные версии JavaScript являются реализациями стандарта ECMAScript.

11 голосов
/ 10 ноября 2012

я знаю, что это старый пост, но, надеюсь, это кому-нибудь поможет.

В 1990-х годах стали появляться разные версии js, такие как javascript из netscape, Js скрипт от Microsoft. Таким образом, ecmascript был введен в качестве стандарта. Но ecmascript формирует только часть javascript, которая определяет его основной синтаксис, типы, объекты и т. Д. Возможно, это объясняет несовместимые реализации javascript в diff. браузеры

Справочник - Wrox (профессиональный Javascript для веб-разработчиков)

10 голосов
/ 18 декабря 2013

В моем понимании, ECMAScript - это «Теория» или «Спецификация», а Javascript - «Практика» или «Реализация».

9 голосов
/ 27 мая 2009

JavaScript - это язык ECMAScript.

ECMAScript не обязательно JavaScript.

...