ECMAScript: відмінності між версіями
[перевірена версія] | [перевірена версія] |
м →Дивись також: Додано посилання на он-лайн підручник |
|||
(Не показана 1 проміжна версія ще одного користувача) | |||
Рядок 65: | Рядок 65: | ||
[[Firefox]], [[Google Chrome]], [[Opera]] та [[Safari]] мають вбудовані зневаджувачі під себе. |
[[Firefox]], [[Google Chrome]], [[Opera]] та [[Safari]] мають вбудовані зневаджувачі під себе. |
||
Internet Explorer має три зневаджувачі для себе: [[Microsoft Visual Studio]] є найпотужнішим з цих трьох, слідом йде Microsoft Script Editor (компонента [[Microsoft Office]]<ref>[http://msdn2.microsoft.com/en-us/library/aa202668(office.11).aspx JScript development in Microsoft Office 11] (MS InfoPath 2003)</ref>), |
Internet Explorer має три зневаджувачі для себе: [[Microsoft Visual Studio]] є найпотужнішим з цих трьох, слідом йде Microsoft Script Editor (компонента [[Microsoft Office]]<ref>[http://msdn2.microsoft.com/en-us/library/aa202668(office.11).aspx JScript development in Microsoft Office 11] (MS InfoPath 2003)</ref>), також існує безкоштовний Microsoft Script Debugger з базовими функціями. Веб-застосунки для [[Firefox]] допоможе вдосконалити додаток [[Firebug]] (зручно вбудований безпосередньо в браузер), або давніший зневаджувач Venkman, котрий також працює з браузером [[Mozilla]]. Drosera — це зневаджувач з [[WebKit]] engine<ref>[http://webkit.org/blog/61/introducing-drosera/ Introducing Drosera — Surfin' Safari]</ref>, що супроводжує Apple Safari. |
||
Також існують кілька інструментів, як вільних, наприклад JSLint<ref>[http://www.jslint.com/lint.html JSLint help page]</ref>, інструмент перевірки якості коду, що сканує JavaScript програму, шукаючи проблеми коду, так і комерційних продуктів типу інструменту з назвою JavaScript Debugger. |
Також існують кілька інструментів, як вільних, наприклад JSLint<ref>[http://www.jslint.com/lint.html JSLint help page]</ref>, інструмент перевірки якості коду, що сканує JavaScript програму, шукаючи проблеми коду, так і комерційних продуктів типу інструменту з назвою JavaScript Debugger. |
||
Оскільки ECMAScript є інтерпретатором, без |
Оскільки ECMAScript є інтерпретатором, без суворої типизації, і може виконуватися в різних середовищах, кожне зі своїми власними особливостями сумісності, програміст має бути дуже уважним, і повинен перевіряти, що його код виконується як очікується в широкому переліку можливих конфігурацій. Дуже часто трапляються випадки, коли скрипт, що чудово працює в одному середовищі, видає некоректні результати в іншому. |
||
Кожен блок сценарію інтерпретатор розбирає окремо. На веб-сторінках, коли треба комбінувати блоки JavaScript та HTML, синтаксичні помилки знайти простіше, якщо тримати функції сценарію в окремому блоці коду, або (ще краще) використовувати багато малих пов'язаних <tt>.js</tt> файлів. В такий спосіб синтаксична помилка не спричинятиме «падіння» цілої сторінки, і можна надати допомогу, елегантно вийшовши зі сторінки. |
Кожен блок сценарію інтерпретатор розбирає окремо. На веб-сторінках, коли треба комбінувати блоки JavaScript та HTML, синтаксичні помилки знайти простіше, якщо тримати функції сценарію в окремому блоці коду, або (ще краще) використовувати багато малих пов'язаних <tt>.js</tt> файлів. В такий спосіб синтаксична помилка не спричинятиме «падіння» цілої сторінки, і можна надати допомогу, елегантно вийшовши зі сторінки. |
||
Рядок 78: | Рядок 78: | ||
{{reflist}} |
{{reflist}} |
||
== |
== Див. також == |
||
* [[Комп'ютерна термінологія]] |
* [[Комп'ютерна термінологія]] |
||
== Посилання == |
|||
* [http://understandinges6.denysdovhan.com Рoзуміння ECMAScript 6] |
|||
{{Стандарти ECMA}} |
{{Стандарти ECMA}} |
Версія за 23:13, 21 січня 2017
ECMAScript | |
---|---|
Парадигма | мульти-парадигмова |
Дата появи | 1995 |
Творці | Brendan Eich |
Розробник | Netscape Communications Corporation |
Останній реліз | 6[1] (15 червня 2015 ) |
Система типізації | неявна типізація |
Основні реалізації | SpiderMonkey, Rhino, KJS, JavaScriptCore |
Діалекти | JScript |
Під впливом від | Self, Perl |
Звичайні розширення файлів |
.es [2] |
Вебсайт | ecma-international.org |
ECMAScript — стандарт мови програмування, затверджений міжнародною організацією ECMA згідно зі специфікацією ECMA-262. Найвідомішими реалізаціями стандарту є мови JavaScript, JScript та ActionScript, які широко використовується у Вебі.
Про мову
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.
Використання в 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[3]), також існує безкоштовний Microsoft Script Debugger з базовими функціями. Веб-застосунки для Firefox допоможе вдосконалити додаток Firebug (зручно вбудований безпосередньо в браузер), або давніший зневаджувач Venkman, котрий також працює з браузером Mozilla. Drosera — це зневаджувач з WebKit engine[4], що супроводжує Apple Safari.
Також існують кілька інструментів, як вільних, наприклад JSLint[5], інструмент перевірки якості коду, що сканує JavaScript програму, шукаючи проблеми коду, так і комерційних продуктів типу інструменту з назвою JavaScript Debugger.
Оскільки ECMAScript є інтерпретатором, без суворої типизації, і може виконуватися в різних середовищах, кожне зі своїми власними особливостями сумісності, програміст має бути дуже уважним, і повинен перевіряти, що його код виконується як очікується в широкому переліку можливих конфігурацій. Дуже часто трапляються випадки, коли скрипт, що чудово працює в одному середовищі, видає некоректні результати в іншому.
Кожен блок сценарію інтерпретатор розбирає окремо. На веб-сторінках, коли треба комбінувати блоки JavaScript та HTML, синтаксичні помилки знайти простіше, якщо тримати функції сценарію в окремому блоці коду, або (ще краще) використовувати багато малих пов'язаних .js файлів. В такий спосіб синтаксична помилка не спричинятиме «падіння» цілої сторінки, і можна надати допомогу, елегантно вийшовши зі сторінки.
Для серверних проектів node.js можна використовувати інтегроване середовище розробки WebStorm.
Виноски
Див. також
Посилання
|