ECMAScript — стандарт мови програмування, затверджений міжнародною організацією ECMA згідно зі специфікацією ECMA-262. Найвідомішими реалізаціями стандарту є мови JavaScript, JScript та ActionScript, які широко використовується у веброзробці.
ECMAScript | |
---|---|
Парадигма | Мультипарадигмальна мова програмування |
Дата появи | 1995 |
Творці | Brendan Eich |
Розробник | Netscape Communications Corporation |
Останній реліз | Видання 11 (червень 2020 ) |
Система типізації | |
Основні реалізації | SpiderMonkey, Rhino, , JavaScriptCore |
Діалекти | JScript |
Під впливом від | Self, Perl |
Звичайні розширення файлів | .es [1] |
Вебсайт | ecma-international.org |
Про мову
JavaScript має низку властивостей об'єктно-орієнтованої мови, але завдяки концепції прототипів підтримка об'єктів в ньому відрізняється від традиційних мов ООП. Крім того, JavaScript має ряд властивостей, притаманних функціональним мовам, — функції як об'єкти першого рівня, об'єкти як списки, каррінг (currying), анонімні функції, замикання (closures) — що додає мові додаткову гнучкість.
JavaScript має C-подібний синтаксис, але в порівнянні з мовою Сі має такі корінні відмінності:
- об'єкти, з можливістю інтроспекції і динамічної зміни типу через механізм прототипів
- функції як об'єкти першого класу
- обробка винятків
- автоматичне приведення типів
- автоматичне прибирання сміття
- анонімні функції
Семантика мови схожа з семантикою мови Self.
Приклад оголошення і використання класу в ECMAScript (клас є одночасно функцією, оскільки функції — це об'єкти першого рівня):
function MyClass() { this.myValue1 = 1; this.myValue2 = 2; } var mc = new MyClass(); mc.myValue1 = mc.myValue2 * 2;
Одна з популярних технологій, що дозволила зробити сторінки динамічнішими і забезпечити нові можливості — це динамічне завантаження і вставка даних в документ, що отримала назву AJAX.
Історія
Специфікація ECMAScript є стандартизованою специфікацією мови сценаріїв, розробленої з Netscape ; спочатку він був названий Mocha, пізніше , і нарешті JavaScript. У грудні 1995 року Sun Microsystems і Netscape оголосили JavaScript у прес-релізі. Перше видання ECMA-262 було прийнято Генеральною Асамблеєю Ecma у червні 1997 року. Відтоді було видано кілька видань мовного стандарту. Назва «ECMAScript» була компромісом між організаціями, що займаються стандартизацією мови, особливо Netscape і Microsoft, чиї суперечки домінували на ранніх сесіях стандартів. Кожен коментував, що "ECMAScript завжди був небажаною торговою назвою, що звучить як шкірна хвороба ".
Хоча як JavaScript, так і JScript прагнуть бути сумісними з ECMAScript, вони також надають додаткові функції, не описані в специфікаціях ECMA.
Версії
Опубліковано одинадцять видань ECMA-262. Робота над версією 11 стандарту була завершена в червні 2020 року.
Видання | Ім'я | Дата випуску | Зміни від попереднього видання | Редактор |
---|---|---|---|---|
1 | ECMAScript 1 | Червень 1997 року | - | Гай Л. Стіл-молодший |
2 | ECMAScript 2 | Червень 1998 року | Зміни в редакції з метою забезпечення відповідності специфікації повністю міжнародному стандарту ISO / IEC 16262 | Майк Коулішоу |
3 | ECMAScript 3 | Грудень 1999 року | Додано регулярні вирази, краще керування рядками, нові оператори керування, обробка виключень try / catch, жорсткіше визначення помилок, форматування для числового виводу та інші покращення | Майк Коулішоу |
4 | ECMAScript 4 | Ніколи не випускався | Четверте видання було залишено через політичні розбіжності щодо складності мови. Багато функцій, запропонованих для Четвертого видання, були повністю знищені; деякі з них були включені до шостого видання. | |
5 | ECMAScript 5 Докладніше про ES5 | Грудень 2009 року | Додано «строгий режим». Додана підтримка JSON. Додано String.trim (). Додано Array.isArray (). Додані методи ітерації масивів. | Пратап Лакшман, Аллен Вірфс-Брок |
5.1 | ECMAScript 5.1 | Червень 2011 року | Це видання 5.1 стандарту ECMAScript повністю узгоджується з третім виданням міжнародного стандарту ISO / IEC 16262: 2011. | Пратап Лакшман, Аллен Вірфс-Брок |
6 | ECMAScript 6 або (ECMAScript 2015) | Червень 2015 року | Додано let і const. Додано значення параметрів за замовчуванням. Додано Array.find (). Додано Array.findIndex (). | Аллен Вірфс-Брок |
7 | ECMAScript 2016 | Червень 2016 року | Основні стандартні функції мови включають в себе блок-область видимість змінних і функцій, знищенням моделі (змінні), відповідні виклики хвоста, оператор зведення в ступені **для чисел await, asyncключові слова для асинхронного програмування. | Брайан Терлсон |
8 | ECMAScript 2017 | Червень 2017 року | Додано додавання рядків. Додані нові властивості об'єкта. Додані функції Async. Додана спільна пам'ять. | Брайан Терлсон |
9 | ECMAScript 2018 | Червень 2018 року | Додані властивості rest/spread. Додано асинхронну ітерацію. Додано Promise.finally (). Доповнення до RegExp. | Брайан Терлсон |
10 | ECMAScript 2019 | Червень 2019 року | Додані методи Array.prototype.flat, Array.prototype.flatMap. Зміни в методах Array.sort та Object.fromEntries. | Брайан Терлсон, Бредлі Фаріас, Джордан Гарбанд |
11 | ECMAScript 2020 | Червень 2020 року | Додано примітивний тип BigInt для цілих чисел довільного розміру та нульовий оператор злиття та об'єкт globalThis. | Джордан Гарбанд, Кевін Сміт |
ES.Next
ES.Next — це динамічне ім'я, яке має будь-яка наступна версія під час написання. Функції ES.Next більш правильно називаються пропозиціями, оскільки, за визначенням, специфікація ще не завершена.
Використання в HTML
При використанні в рамках технології DHTML ECMAScript код включається в HTML-код сторінки і виконується інтерпретатором, вбудованим в браузер. Код JavaScript вставляється в теги <script></script> з обов'язковим по специфікації HTML 4.01 атрибутом type="text/javascript", хоча в більшості браузерів мова сценаріїв за умовчанням саме JavaScript.
Скрипт, що виводить модальне вікно з класичним написом «Hello, World!» усередині браузера:
<script type="text/javascript"> alert('Hello, World!'); </script>
Слідуючи концепції інтеграції JavaScript в існуючі системи, браузери підтримують включення скрипту, наприклад, в значення атрибуту події:
<a href="delete.php" onclick="return confirm('Ви впевнені?');">Видалити</a>
Тут при натисненні на посилання функція confirm('Ви впевнені?'); викликає модальне вікно з написом «Ви впевнені?», а return false; блокує перехід за посиланням. Зрозуміло, цей код працюватиме тільки якщо в браузері є та увімкнена підтримка JavaScript, інакше перехід за посиланням відбудеться без попередження.
Є і третя можливість підключення JavaScript — написати скрипт в окремому файлі, а по тому підключити його за допомогою конструкції:
<script type="text/javascript" src="http://Шлях_до_файла_зі_скриптом"></script>
Зневадження
При розробці великих і нетривіальних вебзастосунків з використанням JavaScript, критично важливим є доступ до інструментів зневадження. Оскільки браузери від різних виробників дещо відрізняються у поведінці (в тому числі і в Об'єктній Моделі Документа, треба мати в руках зневаджувачі для кожного браузера, якщо вебзастосунок орієнтовано на нього.
Firefox, Google Chrome, Opera та Safari мають вбудовані зневаджувачі під себе.
Internet Explorer має три зневаджувачі для себе: Microsoft Visual Studio є найпотужнішим з цих трьох, слідом йде Microsoft Script Editor (компонента Microsoft Office), також існує безкоштовний Microsoft Script Debugger з базовими функціями. Вебзастосунки для Firefox допоможе вдосконалити додаток Firebug (зручно вбудований безпосередньо в браузер), або давніший зневаджувач Venkman, котрий також працює з браузером Mozilla. Drosera — це зневаджувач з WebKit engine, що супроводжує Apple Safari.
Також існують кілька інструментів, як вільних, наприклад JSLint, інструмент перевірки якості коду, що сканує JavaScript програму, шукаючи проблеми коду, так і комерційних продуктів типу інструменту з назвою JavaScript Debugger.
Оскільки ECMAScript є інтерпретатором, без строгої типізації, і може виконуватися в різних середовищах, кожне зі своїми власними особливостями сумісності, програміст має бути дуже уважним, і повинен перевіряти, що його код виконується як очікується в широкому переліку можливих конфігурацій. Дуже часто трапляються випадки, коли скрипт, що чудово працює в одному середовищі, видає некоректні результати в іншому.
Кожен блок сценарію інтерпретатор розбирає окремо. На вебсторінках, коли треба комбінувати блоки JavaScript та HTML, синтаксичні помилки знайти простіше, якщо тримати функції сценарію в окремому блоці коду, або (ще краще) використовувати багато малих пов'язаних .js файлів. В такий спосіб синтаксична помилка не спричинятиме «падіння» цілої сторінки, і можна надати допомогу, елегантно вийшовши зі сторінки.
Для серверних проєктів node.js можна використовувати інтегроване середовище розробки WebStorm.
Виноски
- Scripting Media Type — 2006.
- JScript development in Microsoft Office 11 [ 2012-12-21 у Wayback Machine.] (MS InfoPath 2003)
- Introducing Drosera — Surfin' Safari. Архів оригіналу за 22 серпня 2011. Процитовано 23 квітня 2009.
- . Архів оригіналу за 2 березня 2009. Процитовано 23 квітня 2009.
Див. також
Посилання
- Розуміння ECMAScript 6 [ 31 березня 2022 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
ECMAScript standart movi programuvannya zatverdzhenij mizhnarodnoyu organizaciyeyu ECMA zgidno zi specifikaciyeyu ECMA 262 Najvidomishimi realizaciyami standartu ye movi JavaScript JScript ta ActionScript yaki shiroko vikoristovuyetsya u vebrozrobci ECMAScriptParadigmaMultiparadigmalna mova programuvannyaData poyavi1995TvorciBrendan EichRozrobnikNetscape Communications CorporationOstannij relizVidannya 11 cherven 2020 4 roki tomu 2020 06 Sistema tipizaciyiOsnovni realizaciyiSpiderMonkey Rhino JavaScriptCoreDialektiJScriptPid vplivom vidSelf PerlZvichajni rozshirennya fajliv es 1 Vebsajtecma international orgPro movuJavaScript maye nizku vlastivostej ob yektno oriyentovanoyi movi ale zavdyaki koncepciyi prototipiv pidtrimka ob yektiv v nomu vidriznyayetsya vid tradicijnih mov OOP Krim togo JavaScript maye ryad vlastivostej pritamannih funkcionalnim movam funkciyi yak ob yekti pershogo rivnya ob yekti yak spiski karring currying anonimni funkciyi zamikannya closures sho dodaye movi dodatkovu gnuchkist JavaScript maye C podibnij sintaksis ale v porivnyanni z movoyu Si maye taki korinni vidminnosti ob yekti z mozhlivistyu introspekciyi i dinamichnoyi zmini tipu cherez mehanizm prototipiv funkciyi yak ob yekti pershogo klasu obrobka vinyatkiv avtomatichne privedennya tipiv avtomatichne pribirannya smittya anonimni funkciyi Semantika movi shozha z semantikoyu movi Self Priklad ogoloshennya i vikoristannya klasu v ECMAScript klas ye odnochasno funkciyeyu oskilki funkciyi ce ob yekti pershogo rivnya function MyClass this myValue1 1 this myValue2 2 var mc new MyClass mc myValue1 mc myValue2 2 Odna z populyarnih tehnologij sho dozvolila zrobiti storinki dinamichnishimi i zabezpechiti novi mozhlivosti ce dinamichne zavantazhennya i vstavka danih v dokument sho otrimala nazvu AJAX IstoriyaSpecifikaciya ECMAScript ye standartizovanoyu specifikaciyeyu movi scenariyiv rozroblenoyi z Netscape spochatku vin buv nazvanij Mocha piznishe i nareshti JavaScript U grudni 1995 roku Sun Microsystems i Netscape ogolosili JavaScript u pres relizi Pershe vidannya ECMA 262 bulo prijnyato Generalnoyu Asambleyeyu Ecma u chervni 1997 roku Vidtodi bulo vidano kilka vidan movnogo standartu Nazva ECMAScript bula kompromisom mizh organizaciyami sho zajmayutsya standartizaciyeyu movi osoblivo Netscape i Microsoft chiyi superechki dominuvali na rannih sesiyah standartiv Kozhen komentuvav sho ECMAScript zavzhdi buv nebazhanoyu torgovoyu nazvoyu sho zvuchit yak shkirna hvoroba Hocha yak JavaScript tak i JScript pragnut buti sumisnimi z ECMAScript voni takozh nadayut dodatkovi funkciyi ne opisani v specifikaciyah ECMA Versiyi Opublikovano odinadcyat vidan ECMA 262 Robota nad versiyeyu 11 standartu bula zavershena v chervni 2020 roku Vidannya Im ya Data vipusku Zmini vid poperednogo vidannya Redaktor 1 ECMAScript 1 Cherven 1997 roku Gaj L Stil molodshij 2 ECMAScript 2 Cherven 1998 roku Zmini v redakciyi z metoyu zabezpechennya vidpovidnosti specifikaciyi povnistyu mizhnarodnomu standartu ISO IEC 16262 Majk Koulishou 3 ECMAScript 3 Gruden 1999 roku Dodano regulyarni virazi krashe keruvannya ryadkami novi operatori keruvannya obrobka viklyuchen try catch zhorstkishe viznachennya pomilok formatuvannya dlya chislovogo vivodu ta inshi pokrashennya Majk Koulishou 4 ECMAScript 4 Nikoli ne vipuskavsya Chetverte vidannya bulo zalisheno cherez politichni rozbizhnosti shodo skladnosti movi Bagato funkcij zaproponovanih dlya Chetvertogo vidannya buli povnistyu znisheni deyaki z nih buli vklyucheni do shostogo vidannya 5 ECMAScript 5 a rel nofollow class external text href https www w3schools com js js es5 asp Dokladnishe pro ES5 a Gruden 2009 roku Dodano strogij rezhim Dodana pidtrimka JSON Dodano String trim Dodano Array isArray Dodani metodi iteraciyi masiviv Pratap Lakshman Allen Virfs Brok 5 1 ECMAScript 5 1 Cherven 2011 roku Ce vidannya 5 1 standartu ECMAScript povnistyu uzgodzhuyetsya z tretim vidannyam mizhnarodnogo standartu ISO IEC 16262 2011 Pratap Lakshman Allen Virfs Brok 6 ECMAScript 6 abo ECMAScript 2015 a rel nofollow class external text href https www w3schools com js js es6 asp Dokladnishe pro ES6 a Cherven 2015 roku Dodano let i const Dodano znachennya parametriv za zamovchuvannyam Dodano Array find Dodano Array findIndex Allen Virfs Brok 7 ECMAScript 2016 Cherven 2016 roku Osnovni standartni funkciyi movi vklyuchayut v sebe blok oblast vidimist zminnih i funkcij znishennyam modeli zminni vidpovidni vikliki hvosta operator zvedennya v stupeni dlya chisel await asyncklyuchovi slova dlya asinhronnogo programuvannya Brajan Terlson 8 ECMAScript 2017 Cherven 2017 roku Dodano dodavannya ryadkiv Dodani novi vlastivosti ob yekta Dodani funkciyi Async Dodana spilna pam yat Brajan Terlson 9 ECMAScript 2018 Cherven 2018 roku Dodani vlastivosti rest spread Dodano asinhronnu iteraciyu Dodano Promise finally Dopovnennya do RegExp Brajan Terlson 10 ECMAScript 2019 Cherven 2019 roku Dodani metodi Array prototype flat Array prototype flatMap Zmini v metodah Array sort ta Object fromEntries Brajan Terlson Bredli Farias Dzhordan Garband 11 ECMAScript 2020 Cherven 2020 roku Dodano primitivnij tip BigInt dlya cilih chisel dovilnogo rozmiru ta nulovij operator zlittya ta ob yekt globalThis Dzhordan Garband Kevin Smit ES Next ES Next ce dinamichne im ya yake maye bud yaka nastupna versiya pid chas napisannya Funkciyi ES Next bilsh pravilno nazivayutsya propoziciyami oskilki za viznachennyam specifikaciya she ne zavershena Vikoristannya v HTMLPri vikoristanni v ramkah tehnologiyi DHTML ECMAScript kod vklyuchayetsya v HTML kod storinki i vikonuyetsya interpretatorom vbudovanim v brauzer Kod JavaScript vstavlyayetsya v tegi lt script gt lt script gt z obov yazkovim po specifikaciyi HTML 4 01 atributom type text javascript hocha v bilshosti brauzeriv mova scenariyiv za umovchannyam same JavaScript Skript sho vivodit modalne vikno z klasichnim napisom Hello World useredini brauzera lt script type text javascript gt alert Hello World lt script gt Sliduyuchi koncepciyi integraciyi JavaScript v isnuyuchi sistemi brauzeri pidtrimuyut vklyuchennya skriptu napriklad v znachennya atributu podiyi lt a href delete php onclick return confirm Vi vpevneni gt Vidaliti lt a gt Tut pri natisnenni na posilannya funkciya confirm Vi vpevneni viklikaye modalne vikno z napisom Vi vpevneni a return false blokuye perehid za posilannyam Zrozumilo cej kod pracyuvatime tilki yaksho v brauzeri ye ta uvimknena pidtrimka JavaScript inakshe perehid za posilannyam vidbudetsya bez poperedzhennya Ye i tretya mozhlivist pidklyuchennya JavaScript napisati skript v okremomu fajli a po tomu pidklyuchiti jogo za dopomogoyu konstrukciyi lt script type text javascript src http Shlyah do fajla zi skriptom gt lt script gt ZnevadzhennyaPri rozrobci velikih i netrivialnih vebzastosunkiv z vikoristannyam JavaScript kritichno vazhlivim ye dostup do instrumentiv znevadzhennya Oskilki brauzeri vid riznih virobnikiv desho vidriznyayutsya u povedinci v tomu chisli i v Ob yektnij Modeli Dokumenta treba mati v rukah znevadzhuvachi dlya kozhnogo brauzera yaksho vebzastosunok oriyentovano na nogo Firefox Google Chrome Opera ta Safari mayut vbudovani znevadzhuvachi pid sebe Internet Explorer maye tri znevadzhuvachi dlya sebe Microsoft Visual Studio ye najpotuzhnishim z cih troh slidom jde Microsoft Script Editor komponenta Microsoft Office takozh isnuye bezkoshtovnij Microsoft Script Debugger z bazovimi funkciyami Vebzastosunki dlya Firefox dopomozhe vdoskonaliti dodatok Firebug zruchno vbudovanij bezposeredno v brauzer abo davnishij znevadzhuvach Venkman kotrij takozh pracyuye z brauzerom Mozilla Drosera ce znevadzhuvach z WebKit engine sho suprovodzhuye Apple Safari Takozh isnuyut kilka instrumentiv yak vilnih napriklad JSLint instrument perevirki yakosti kodu sho skanuye JavaScript programu shukayuchi problemi kodu tak i komercijnih produktiv tipu instrumentu z nazvoyu JavaScript Debugger Oskilki ECMAScript ye interpretatorom bez strogoyi tipizaciyi i mozhe vikonuvatisya v riznih seredovishah kozhne zi svoyimi vlasnimi osoblivostyami sumisnosti programist maye buti duzhe uvazhnim i povinen pereviryati sho jogo kod vikonuyetsya yak ochikuyetsya v shirokomu pereliku mozhlivih konfiguracij Duzhe chasto traplyayutsya vipadki koli skript sho chudovo pracyuye v odnomu seredovishi vidaye nekorektni rezultati v inshomu Kozhen blok scenariyu interpretator rozbiraye okremo Na vebstorinkah koli treba kombinuvati bloki JavaScript ta HTML sintaksichni pomilki znajti prostishe yaksho trimati funkciyi scenariyu v okremomu bloci kodu abo she krashe vikoristovuvati bagato malih pov yazanih js fajliv V takij sposib sintaksichna pomilka ne sprichinyatime padinnya ciloyi storinki i mozhna nadati dopomogu elegantno vijshovshi zi storinki Dlya servernih proyektiv node js mozhna vikoristovuvati integrovane seredovishe rozrobki WebStorm VinoskiScripting Media Type 2006 JScript development in Microsoft Office 11 2012 12 21 u Wayback Machine MS InfoPath 2003 Introducing Drosera Surfin Safari Arhiv originalu za 22 serpnya 2011 Procitovano 23 kvitnya 2009 Arhiv originalu za 2 bereznya 2009 Procitovano 23 kvitnya 2009 Div takozhKomp yuterna terminologiyaPosilannyaRozuminnya ECMAScript 6 31 bereznya 2022 u Wayback Machine