В чем разница между JavaScript и ECMAScript?

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

Ответ 1

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

Ответ 2

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответ 3

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 не требует шага сборки (transpilers), чтобы преобразовать его во что-то, что будет работать в современных браузерах.

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

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

ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:

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

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

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

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

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

BabelJS:

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

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

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

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

TypeScript и CoffeeScript:

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

  • Вы пишете TypeScript или CoffeeScript, тогда транспилер преобразует его в JavaScript ES5.

Ответ 4

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

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

Ответ 5

JavaScript = ECMAScript + DOM + BOM;

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

  • DOM (D ocument O bject M odel) позволяет общаться с документами HTML/XML (например, document.getElementById('id');).

  • Спецификация (B rowser O bject M odel) - это иерархия объектов браузера (например, объект местоположения, объект истории, элементы формы).

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

Mocha ► LiveScript ► JavaScript ► (part of JS resulted in) ECMA-262 ► ECMAScript ► JavaScript (consists of ECMAScript + DOM + BOM)

Ответ 6

Что такое 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 uropean C omputer M anufacturers A ssociation (ECMA) для стандартизации.
  • Но возникли проблемы с товарными знаками с именем Javascript, и стандарт стал называться ECMAScript, что также является названием, которое он имеет и сегодня.
  • Из-за проблем с товарными знаками версия языка Microsoft называется JScript - хотя JScript по своей сути тот же язык, что и Javascript.

Ответ 7

Различные версии JavaScript - это реализация стандарта ECMAScript.

Ответ 8

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

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

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

Ответ 9

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

Ответ 10

JavaScript - это язык ECMAScript.

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

Ответ 11

Существующие ответы довольно хорошо перефразируют основную точку.

Главное, что ECMAScript является открытым абстрактным языком без каких-либо доменных расширений, он бесполезен сам по себе. Спецификация определяет только язык и основные его объекты.

Хотя JavaScript и ActionScript и другие диалекты добавляют к нему библиотеку домена, поэтому вы можете использовать его для чего-то значимого.

Есть много движков ECMAScript, некоторые из них с открытым исходным кодом, другие являются собственностью. Вы можете связать их с вашей программой, а затем добавить свои собственные функции в глобальный объект, чтобы ваша программа стала доступной для сценариев. Хотя чаще всего они используются в браузерах.

Ответ 12

Javascript был оригинальным именем, предназначенным для использования популярности java. ECMA - это орган по стандартизации, который контролирует стандарт, который был в конечном итоге введен в действие, чтобы имена были примерно эквивалентными.

Реализации имеют другие имена, такие как V8 или Rhino и т.д.

Ответ 13

ECMAScript является стандартом для JavaScrip t, посмотрите на эти инструкции из MDN:

введите описание изображения здесь

JavaScript

JavaScript (JS) - это легкий интерпретируемый или JIT-скомпилированный язык программирования с первоклассными функциями. Хотя это больше всего хорошо известный как язык сценариев для веб-страниц, многие не-браузеры среды также используют его, например node.js, Apache CouchDB и Adobe Acrobat. JavaScript - это прототип, мультипарадигма, динамика язык, поддерживающий объектно-ориентированный, императивный и декларативный (например, функциональное программирование). Подробнее о JavaScript.


ECMAScript

Стандарт для JavaScript - ECMAScript. С 2012 года все современные браузеры полностью поддерживают ECMAScript 5.1. Старые браузеры поддерживают как минимум ECMAScript 3. 17 июня 2015 года ECMA International опубликовала шестой основная версия ECMAScript, которая официально называется ECMAScript 2015, и первоначально был назван ECMAScript 6 или ES6. поскольку то стандарты ECMAScript распространяются на ежегодные циклы выпуска. Эта документация относится к последней версии проекта, которая в настоящее время ECMAScript 2018.

Для получения дополнительной информации посетите здесь

Ответ 14

Я сомневаюсь, что мы когда-либо использовали бы слово "ECMAScript", если бы не тот факт, что имя "JavaScript" принадлежит Sun. Для всех целей и целей языком является JavaScript. Вы не ходите в книжный магазин, который ищет книги ECMAScript, не так ли?

Слишком просто сказать, что "JavaScript" - это реализация. JScript - это реализация Microsoft.

Ответ 15

Вот мои выводы:

JavaScript: Полное руководство, написанное Дэвидом Фланаганом, дает очень краткое объяснение:

JavaScript был создан в Netscape в первые дни существования Интернета, и технически "JavaScript" является торговой маркой, лицензированной у Sun Microsystems (сейчас Oracle), используемой для описания реализации языка Netscape (теперь Mozilla). Netscape представил язык для стандартизации в ECMA, и из-за проблем с товарными знаками стандартизированная версия языка застряла с неловким названием "ECMAScript". По тем же причинам, связанным с товарными знаками, версия языка Microsoft официально известна как "JScript". На практике почти все называют язык JavaScript.

Кажется, что сообщение в блоге Microsoft согласуется с тем, что Фланаган объясняет словами:

ECMAScript - это официальное название языка JavaScript, который мы все знаем и любим.

... что заставляет меня думать, что все вхождения JavaScript в этом справочном посте (опять же от Microsoft) должны быть заменены на ECMASCript. На самом деле они, кажется, осторожны с использованием ECMAScript только на этой, более новой и более технической странице документации.

w3schools.com, похоже, согласен с приведенными выше определениями:

JavaScript был изобретен Бренданом Айхом в 1995 году и стал стандартом ECMA в 1997 году. ECMA-262 является официальным названием стандарта. ECMAScript - это официальное название языка.

Ключ здесь: официальное название языка.

Если вы проверите страницы версий JavaScript в Mozilla, вы увидите следующее утверждение:

Устаревшее. Явное управление версиями и поддержка языковых функций были специфичны для Mozilla и находятся в процессе удаления. Firefox 4 был последней версией, которая ссылалась на версию JavaScript (1.8.5). С новыми стандартами ECMA функции языка JavaScript теперь часто упоминаются с их первоначальным определением в выпусках ECMA-262, таких как ECMAScript 2015.

и когда вы увидите последние заметки о выпуске, вы всегда увидите ссылку на стандарты ECMAScript, такие как:

  • Свойство ES2015 Symbol.toStringTag было реализовано (ошибка 1114580).

  • Методы ES2015 TypedArray.prototype.toString() и TypedArray.prototype.toLocaleString() были реализованы (ошибка 1121938).

В Mozilla Web Docs также есть страница, которая объясняет разницу между ECMAScript и JavaScript:

Однако общий термин "JavaScript", понимаемый в контексте веб-браузера, содержит несколько очень разных элементов. Одним из них является основной язык (ECMAScript), другим - набор веб-API, включая DOM (объектную модель документа).

Заключение

Насколько я понимаю, люди используют слово JavaScript несколько свободно, чтобы ссылаться на основную спецификацию ECMAScript.

Я бы сказал, что все современные реализации JavaScript (или движки JavaScript) на самом деле являются реализациями ECMAScript. Проверьте определение V8 Engine от Google, например:

V8 - это высокопроизводительный движок JavaScript с открытым исходным кодом Googles, написанный на C++ и используемый в Google Chrome, браузере с открытым исходным кодом от Google и в Node.js, среди прочих. Он реализует ECMAScript, как указано в ECMA-262.

Кажется, они взаимозаменяемо используют слова JavaScript и ECMAScript, и я бы сказал, что это на самом деле движок ECMAScript?

Так что большинство JavaScript-движков фактически реализуют стандарт ECMAScript, но вместо того, чтобы называть их движками ECMAScript, они называют себя JavaScript-движками. Этот ответ также поддерживает то, как я вижу ситуацию.

Ответ 16

JavaScript - это одна ветвь языков, образованная вокруг стандарта ECMAScript. Я считаю, ECMA является Европейской ассоциацией производителей компьютеров, а не тем, что это действительно актуально или что-то еще.

Не забывайте, что другой популярный язык, созданный вокруг стандарта ECMA Script, - это ActionScript, используемый в Adobe Flash/Flex.

Ответ 17

ECMAScript - это не что иное, как стандарт или спецификация, определенные для создания разных языков сценариев, а один из них - JavaScript. Он создан с единственной целью кросс-браузерной совместимости

Стандарт гарантирует, что если кто-то пишет код, следуя правилам стандарта, тогда код будет работать нормально в браузере (в случае javascript), если браузер реализует один и тот же стандарт.

Зачем нам нужен стандарт?

Когда Javascript был впервые создан Netscape, тогда произошла война между всеми поставщиками браузеров на рынке. Microsoft внедрила собственную версию javascript в Internet Explorer. Аналогичным образом другие производители браузеров реализовали свои собственные версии.

Все это создало огромную проблему для разработчиков. Один код отлично работал на Netscape, но был полным количеством отходов в Internet Explorer. Чтобы разрешить совместимость с перекрестным браузером, Javascript был стандартизован ECMA international; отсюда и название ECMAscript.

Все броверы согласились реализовать ECMAscript (хотя это заняло много времени).

В результате теперь тот же код работает отлично во всех браузерах.

Исключение составляет DOM (объектная модель документа). DOM по-прежнему интерпретируется по-разному в разных браузерах. Однако есть хорошие новости. Медленно все браузеры придерживаются того же стандарта DOM.