Сьогодні ми дізнаємося у чому полягає різниця між JavaScript та ECMAScript, а також розберемо основні терміни. Ця стаття має вступний характер і не зачіпає фундаментальні концепції мови. Однак у ній трапляються терміни, які різні джерела визначають по-різному. Ця проблема найбільш яскраво описана тут.
Почніть зі списку рекомендованих матеріалів. У ньому вказані ресурси із популярними визначеннями. На співбесіді буде достатньо використовувати визначення у тому вигляді, в якому вони представлені в цих ресурсах. Для тих, хто хоче докопатися до суті, я навів цитати офіційного сайту компанії ECMA. Вони охоплюють основні терміни.
Стаття із циклу
Ця стаття входить до циклу матеріалів курсу по JavaScript. Поради щодо способу вивчення матеріалу можна знайти тут.
Теорія добре описана у наступних джерелах:
- JavaScript: для чого підходить і де застосовується
- Введення в JavaScript
- Довідники та специфікації
- Суворий режим - "use strict"
- TC39
- ECMA-262
Ecma
Ecma International is industry asociation, присвячений 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, яку ми використовуємо в роботі.