Джаваскрипт

Джаваскрипт
JavaScript
Класс языка:

мультипарадигменный: объектно-ориентированное, обобщённое, функциональное, императивное, аспектно-ориентированное, прототипное программирование

Тип исполнения:

интерпретация, компиляция в байт-код Java

Появился в:

1995 г.

Автор(ы):

Брендан Эйк

Последняя версия:

1.8 / 2008

Типизация данных:

утиная

Основные реализации:

JavaScriptCore, V8

Диалекты:

JScript, JScript .NET

Испытал влияние:

Self, Си, Perl, Java

Повлиял на:

скриптовый язык, чаще всего использующийся при создании сценариев поведения браузера, встраиваемых в веб-страницы. Является одной из реализаций языка товарным знаком компании Sun Microsystems, Inc.

Содержание

История

Разработанный Бренданом Айком из компании Netscape язык был включён в браузер Netscape Navigator начиная с версии 2.0B3 в декабре 1995 года. Первоначально язык назывался Mocha, затем он был переименован в LiveScript. На синтаксис оказали влияние языки Си и Sun. Реализация компании JScript. Internet Explorer поддерживает JScript, начиная с версии 3.0, выпущенной в августе 1996 года. Стандартизация языка ассоциацией ECMA инициирована компанией ECMAScript, описывается стандартом ECMA-262. Первая версия данного стандарта примерно соответствовала JavaScript 1.1.

Область применения языка

JavaScript в данный момент полностью занимает нишу браузерных языков. Несмотря на то, что, по слухам, некоторые разработчики браузеров встраивают (или уже встроили) в дополнение к JavaScript-у такой язык как Python, для динамического изменения веб-страниц на стороне клиента, официальной информации по этому вопросу нет.

JavaScript также находит применение в качестве скриптового языка доступа к объектам приложений. Платформа Mozilla (Gecko) использует JavaScript. Среди сторонних продуктов, например, Java, начиная с версии 6, содержит встроенный интерпретатор JavaScript на базе Rhino. Сценарии JavaScript поддерживаются в таких приложениях Adobe, как Adobe Photoshop, Adobe Dreamweaver, Adobe Illustrator или Adobe InDesign.

О языке

JavaScript обладает рядом свойств объектно-ориентированного языка, но благодаря прототипированию поддержка объектов в нём отличается от традиционных ОО языков. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого уровня, объекты как списки, карринг (currying), анонимные функции, замыкания (closures) — что придаёт языку дополнительную гибкость.

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

Семантика языка JavaScript сходна с семантикой языка Self.

Пример объявления и использования класса в JavaScript (класс является одновременно функцией, так как функции — это объекты первого уровня):

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

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

Использование в 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 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](англ.)
1.7 (Gecko 1.8.1, Firefox 2.0, осень 2006), расширение JavaScript 1.6 Редакция 3, с добавлением всех улучшений из JavaScript 1.6, генераторов и списочных выражений (list comprehensions, [a*a for (a in iter)]) из Python, блоковых областей с использованием let и деструктурирующего присваивания (var [a,b]=[1,2]) [2](англ.)
JScript .NET (ASP.NET; нет версии IE) (Считается, что JScript .NET разработан при участии других членов ECMA)
2.0 (старое предложение Netscape) Редакция 4 (в разработке)

JavaScript библиотеки

Для создания кросс-браузерных веб-приложений с использованием JavaScript, используются специальные JavaScript библиотеки. Они представляют собой сборники JavaScript осуществляющие поддержку при разработке программ.

Среди известных JavaScript библиотеки включают Adobe life, Dojo Toolkit, Ext JS, Mootools,

Отладка

В JavaScript, доступ к отладчикам становится бесценным при разработке крупных нетривиальных программ. Потому что в процессе разработки возникают разногласия с разными браузерами (в частности с Internet Explorer, Firefox, Google Chrome, а также Microsoft Visual Studio является самым полным из трёх, следом за ним следует Microsoft Script Editor (компонент Microsoft Office), и, наконец, свободный Microsoft Script Debugger, который гораздо более простой, чем два других. Бесплатный Microsoft Visual Web Developer Express предоставляет ограниченную версию с отладочной функции JavaScript в Microsoft Visual Studio. Разработку веб-приложений в Firefox можно отлаживать при помощи плагина

JavaScript и Java

Общим заблуждением является то, что JavaScript аналогичен или тесно связан с