Сегодня мы узнаем в чем заключается разница между JavaScript и ECMAScript, а также разберем основные термины. Эта статья носит вводный характер и не затрагивает фундаментальные концепции языка. Однако в ней встречаются термины, которые разные источники определяют по-разному. Эта проблема наиболее ярко описана тут.
Начните со списка рекомендованных материалов. В нём указаны ресурсы с популярными определениями. На собеседовании достаточно использовать определения в том виде, в каком они изложены на этих ресурсах. Для тех, кто хочет докопаться до сути, я привел цитаты с официального сайта компании ECMA. Они охватывают основные термины.
Статья из цикла
Эта статья входит в цикл материалов курса по JavaScript. Советы по способу изучения материала можно найти здесь.
Теория хорошо описана в следующих источниках:
- JavaScript: для чего хорош и где применяется
- Введение в JavaScript
- Справочники и спецификации
- Строгий режим — «use strict»
- TC39
- ECMA-262
Ecma
Ecma International is an industry association dedicated to the standardization of information and communication systems
Ecma — организация, занимающаяся стандартизацией информационных и коммуникационных систем https://www.ecma-international.org/
ECMA-262
This Standard defines the ECMAScript 2021 general-purpose programming language
Один из стандартов, описаных компанией ecma, по сути являющийся спецификацией языка програмирования общего назначения ECMAScript. https://www.ecma-international.org/publications-and-standards/standards/ecma-262/
ECMAScript
This Standard defines the ECMAScript 2021 general-purpose programming language
ECMAScript — язык програмирования общего назначения ECMAScript 2021 (год на офф. сайте будет отличаться с течением времени). https://www.ecma-international.org/publications-and-standards/standards/ecma-262/
JavaScript
We develop the JavaScript (formally, ECMAScript) specification
Цитата с официального сайта комитета tc39. ECMAScript — формальное назвние JavaScript https://tc39.es/
ECMAScript 2016 (ES7)
ECMAScript 2016, ECMAScript 2017, ECMAScript 2018
Различные издания стандарта (спецификации). https://262.ecma-international.org/12.0/
ECMAScript is based on JavaScript
ECMAScript is based on several originating technologies, the most well-known being JavaScript (Netscape) and JScript (Microsoft).
ECMAScript был создан на базе таких технологий как — язык JavaScript от Netscape и JScript от Microsoft. Для более простого восприятия следует принимать JavaScript от Netscape как язык, который стал основанием для создания спецификации. То есть первая спецификация была создана на основании существующего языка, последующие же, как и полагается, предшествовали реализации.https://262.ecma-international.org/12.0/
Подведем итог
ECMAScript — это скриптовый язык программирования общего назначения. Он определен стандартом (спецификацией) ECMA-262, которая описывает синтаксис, типы данных, функции, объекты и другие элементы языка программирования. Возможно, в данном случае, путаницу вносит именно взаимозаменяемость понятий «стандарт» и «спецификация», ведь как правило, это не одно и то же.
Над новой версией спецификации работает комитет Technical Committee 39. Он состоит из независимых разработчиков и представителей разных IT-компаний. Этот комитет является частью организации ECMA. Реализация функционала из спецификации ложится на разработчиков браузеров и других сред выполнения JavaScript (например, Node.js). Именно там будет выполняться ваш скрипт. Таким образом, разные браузеры или даже их версии имеют разную поддержку новых фич. Проверить ее можно, например, на caniuse. Более того, некоторые браузеры предоставляют возможности, недоступные в других браузерах. Это не запрещается. Главное, чтобы основные требования описанные стандартом были реализованы. Если отбросить термины вроде «диалект языка», которые больше запутывают, чем помогают, картина упрощается. На сайте комитета T39 указано: «JavaScript (formally, ECMAScript)». Это значит, что JavaScript — привычное и неформальное название языка ECMAScript, который мы используем в работе.