ECMAScript

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
ECMAScript
Парадигма: мульти-парадигмна
Дата появи: 1995
Творці: Brendan Eich
Розробник: Netscape Communications Corporation
Система типізації: неявна типізація
Основні реалізації: SpiderMonkey, Rhino, KJS, JavaScriptCore
Діалекти: JScript
Під впливом від: Self, Perl

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, критично важливим є доступ до інструментів відладки. Оскільки браузери від різних виробників дещо відрізняються у поведінці (в тому числі і в Об'єктній Моделі Документа, треба мати в руках відладчики для кожного браузера, якщо веб-застосування орієнтовано на нього.

У наш час[Коли?] Internet Explorer, Firefox та Safari мають відладчики для себе. Opera анонсувала відладочний інструмент розробника в попередній редакції (preview) в лютому 2007 (поки це не повноціний відладчик, а допоміжний інструмент, консоль JavaScript та інспектор DOM).

Internet Explorer має три відладчика для себе: Microsoft Visual Studio є найпотужнішим з цих трьох, слідом йде Microsoft Script Editor (компонента Microsoft Office[1]), і нарешті існує безплатний Microsoft Script Debugger з базовими функціями. Веб-застосування для Firefox допоможе привести до ума додаток Firebug (зручно вбудований безпосередньо в браузер), або давніший відладчик Venkman, котрий також робить з браузером Mozilla. Drosera — це відладчик з WebKit engine[2], що супроводжує Apple Safari.

Також існують кілька інструментів, як вільних, наприклад JSLint[3], інструмент перевірки якості коду, що сканує JavaScript програму, шукаючи проблеми коду, так і комерційних продуктів типу інструменту з назвою JavaScript Debugger.

Оскільки ECMAScript є інтерпретатором, без строгої типизації, і може виконуватися в різних середовищах, кожне зі своїми власними особливостями сумісності, програміст має бути дуже уважним, і повинен перевіряти, що його код виконується як очікується в широкому переліку можливих конфігурацій. Дуже часто трапляються випадки, коли скріпт, що чудово працює в одному середовищі, видає некоректні результати в іншому.

Кожен блок сценарію інтерпретатор розбирає окремо. На веб-сторінках, коли треба комбінувати блоки JavaScript та HTML, синтаксичні помилки знайти простіше, якщо тримати функції сценарію в окремому блоці коду, або (ще краще) використовувати багато малих пов'язаних .js файлів. В такий спосіб синтаксична помилка не спричинятиме «падіння» цілої сторінки, і можна надати допомогу, елегантно вийшовши зі сторінки.

Виноски[ред.ред. код]

Дивись також[ред.ред. код]