JavaScript

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

JavaScript (Джава сценарій, інколи Ява сценарій) — назва реалізації стандарта мови програмування ECMAScript компанії Netscape, базується на принципах прототипно-орієнтованого програмування. Найпоширеніше і найвідоміше застосування мови — написання сценаріїв для веб-сторінок, але, також, використовується для впровадження сценаріїв керування об'єктами вбудованими в інші програми.

Не зважаючи на схожість назв, JavaScript та мова програмування Java мають дуже мало спільного. Права на назву JavaScript належать компанії Sun Microsystems.[1]

Розроблена в компанії Netscape. На теперішній час підтримується більшістю браузерів. Текст програми включається безпосередньо в HTML-документ і інтерпретується самим браузером. Застосовується в основному для часткової автоматизації обробки даних, які застосовуються сторінкою.

Станом на 2006 рік, останній стандарт мови — JavaScript 1.7. Якщо спрощено, то ECMA-262 є стандартизованим варіантом мови JavaScript. Стандартом ECMA-357 визначено E4X, розширення мови для роботи з XML.

Зміст

[ред.] Про мову

JavaScript має низку властивостей об'єктно-орієнтованої мови, але завдяки концепції прототипів підтримка об'єктів в нім відрізняється від традиційних мов ООП. Крім того, JavaScript має ряд властивостей, властивих функціональним мовам, — функції як об'єкти першого рівня, об'єкти як списки, каррінг (currying), анонімні функції, замикання (closures) — що додає мові додаткову гнучкість.

JavaScript має C-подібний синтаксис, але в порівнянні з мовою Сі має наступні корінні відмінності:

  • об'єкти, з можливістю інтроспекції і динамічної зміни типу через механізм прототипів
  • функції як об'єкти першого класу
  • обробка винятків
  • автоматичне приведення типів
  • автоматичне прибирання сміття
  • анонімні функції

Семантика мови схожа з семантикою мови Self.

Приклад оголошення і використання класу в JavaScript (клас є одночасно функцією, оскільки функції — це об'єкти першого рівня):

 function MyClass()
 {
   this.myValue1 = 1;
   this.myValue2 = 2;
 }
 
 var mc = new MyClass();
 mc.myValue1 = mc.myValue2 * 2;

Одна з популярних технологій, що дозволила зробити сторінки динамічнішими і забезпечити нові можливості — це динамічне завантаження і вставка даних в документ, що отримала назву AJAX.

[ред.] Використання в HTML

При використанні в рамках технології DHTML JavaScript код включається в 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[2]), і нарешті існує безплатний Microsoft Script Debugger з базовими функціями. Веб-застосування для Firefox допоможе привести до ума додаток Firebug (зручно вбудований безпосередньо в браузер), або давніший відладчик Venkman, котрий також робить з браузером Mozilla. Drosera — це відладчик з WebKit engine[3], що супроводжує Apple Safari.

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

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

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

[ред.] Версії

JavaScript JScript ECMAScript
1.0 (Netscape 2.0, березень 1996) 1.0 (рані версії IE 3.0, серпень 1996)
1.1 (Netscape 3.0, серпень 1996) 2.0 (пізні версії IE 3.0, січень 1997)
1.2 (Netscape 4.0, червень 1997)
1.3 (Netscape 4.5, жовтень 1998) 3.0 (IE 4.0, жовтень 1997) Редакція 1 (червень 1997) / редакція 2 (червень 1998)
1.4 (тільки Netscape Server) 4.0 (Visual Studio 6, нема версії IE)
5.0 (IE 5.0, березень 1999)
5.1 (IE 5.01)
1.5 (Netscape 6.0, листопад 2000; також
пізні версії Netscape і Mozilla)
5.5 (IE 5.5, липень 2000) Редакція 3 (грудень 1999)
5.6 (IE 6.0, жовтень 2001)
1.6 (Gecko 1.8, Firefox 1.5, листопад 2005) Редакція 3 з деякими сумісними поліпшеннями: E4X, доповнення до Array (наприклад, Array.prototype.forEach), спрощення для Array і String [1](англ.)
Редакція 3, з додаванням всіх поліпшень з JavaScript 1.6, генераторів і облікових виразів (list comprehensions, [a*a for (а in iter)]) з Python, блокових областей з використанням let і деструктуруючих присвоєнь (var [а,b]=[1,2]) [2](англ.)
JScript .NET (ASP.NET; нема версії IE) (Вважається, що JScript .NET розроблений за участі інших членів ECMA)
2.0 (стара пропозиція Netscape) Редакція 4 (у розробці)

[ред.] Статистика використання

Реальний звіт про використання JavaScript в браузерах свідчить, що

  • біля 90 % користувачів мають встановленим JavaScript версії 1.3,
  • близько 4 % — версію 1.0,
  • близько 3.5 % — версію 1.5,
  • близько 2.5 % — версію 1.6,

решта версій зустрічається в долях відсотка (джерело — spylog.ru[5] на січень 2008).

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

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

[ред.] Ресурси інтернет


SEO Tools wymiana linkami system wymiany linków SEO Tools tanie kredyty gotówkowe kreatyna Plaza 3 star hotel Los Angeles krynica noclegi Sejm Tyk