Давайте з самого початку. Що таке JavaScript? JS це високорівнева мова програмування. Що означає термін “високорівнева”?
Мова програмування - це інструмент для пояснення комп’ютеру, як той має вирішити певну задачу розробника. Всі мови можна умовно поділити на дві категорії:
Більшість сучасних мов програмування - високорівневі, тобто наближені до людських мов. Відповідно, для опанування такої мови людині не потрібно занадто глибоко вдаватись в механіку комп’ютерного заліза та розуміти, як працює кожна деталь у ньому.
А як же тоді комп'ютер розуміє написаний код? Для цього існують спеціальні перекладачі - компілятори та інтерпретатори. Різниця між ними в тому, що компілятори заздалегідь до виконання програми перетворюють її на виконуваний файл, написаний вже “машинним кодом” - командами процесора, а інтерпретатори - як синхронні перекладачі на зустрічах - перекладають на машинний код одразу під час виконання, рядок за рядком.
JavaScript - це інтерпретована мова, тобто для розуміння її комп’ютером потрібен інтерпретатор - його часто називають рушієм, або JavaScript-engine (двигуном), який є у певних середовищах виконання коду, зокрема у браузерах. Різні браузери використовують різні рушії, найвідомішими серед них є V8, SpiderMonkey, Rhino та Chakra. Саме від рушія залежить виконання написаного коду.
Ще 30 років тому написання програм потребувало більше специфічних знань, а інструменти написання коду були далеко не такими продвинутими, як зараз.
JavaScript “з’явився на світ” у 1995 році, і початково називався LiveScript. Перед розробниками мови стояла мета створити просту в опануванні та гнучку мову для веб-сторінок, яка пов’язувала би html-елементи на сторінці, зображення та сторонні аплети (анімації).
А оскільки на той момент інша мова програмування - Java - якраз набувала своєї популярності, цим вирішили скористатись і назвали нову розробку - JavaScript. Це призвело до плутанити, оскільки насправді JavaScript - це абсолютна інша мова, і вона схожа на Java не більше, ніж Java схожа на C (C або “Сі” - це мінімалістична процедурна мова початку 70-их років, і всі сучасні мови, які мають схожий на неї синтаксис, називають “Сі-подібними”). Насправді, Java та JavaScript - абсолютно різні мови, схожі між собою як французька та англійська.
Слово “Script” означає сценарій, і саме для цього JS і використовувався на початку свого існування - для написання сценаріїв веб-сторінки. Для того, щоб мова стала уніфікованим та стандартизованим інструментом і могла еволюціонувати, некомерційна асоціація комп’ютерних виробників ECMA (European Computer Manufacturers Association)
розробила стандарт - так звану “специфікацію” мови, під назвою “ECMA-262” або EcmaScript. Цей стандарт - по суті, прототип мови.
Будь-які нововведення та зміни, які спільнота розробників пропонує, розглядаються комісією та - у разі прийняття пропозицій - вносить їх у наступну редакцію специфікації. Після виходу нової редакції ці нові можливості втілюються у різних рушіях, для того щоб середовище виконання могло “розуміти” новинки, які використовують розробники.
Перші редакції EcmaScript не були особливо цікавими. А от у 2015 році з’явилась відома 6-та версія (вона ж EcmaScript 6), яка містила дуже багато “карколомних” змін у прототипі мови, зокрема з’явились такі новинки:
Саме з появою EcmaScript 6 (ще її іноді називають ES6 або EcmaScript 2015 за роком появи) пов’язана зміна підходу до JS в цілому - якщо до цього JS була мовою сценаріїв, яка не давала багато можливостей для вирішення нетривіальних задач, то після виходу 6-тої редакції js почала набувати популярності. Після 2015 року нові версії стандарту почали виходити щорічно, їх умовно об’єднують терміном ES.Next і останньою станом на лютий 2024 актуальною версією специфікації є 14-та.
Якщо початково ця мова замислювалась як з’єднувальна ланка між html-елементами на веб-сторінці та сторонніми аплетами, написаними іншими мовами програмування, то після виходу ES6 джаваскрипт стала самостійною і повноцінною мовою програмування, засобів якої вже достатньо для реалізації всіх програмних рішень, які до того робились іншими мовами. По суті, необхідність у сторонніх аплетах просто відпала, оскільки тепер за допомогою js стало можна писати повноцінні зручні веб-додатки.