- Яваскрипт
-
JavaScript Класс языка: мультипарадигменный: объектно-ориентированное, обобщённое, функциональное, императивное, аспектно-ориентированное, прототипное программирование
Тип исполнения: интерпретация, компиляция в байт-код Java
Появился в: 1995 г.
Автор(ы): Последняя версия: 1.8 / 2008
Типизация данных: Основные реализации: JavaScriptCore, V8
Диалекты: JScript, JScript .NET
Испытал влияние: Повлиял на: скриптовый язык, чаще всего использующийся при создании сценариев поведения браузера, встраиваемых в веб-страницы. Является одной из реализаций языка товарным знаком компании 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 аналогичен или тесно связан с
- Java использует парадигму ООП из C++; JavaScript использует прототипный подход (где нет классов, а объект — просто хеш);
- Java имеет статическую типизацию; JavaScript имеет динамическую типизацию (значение переменной может содержать объекты любого типа и даже функции);
- Java загружается из скомпилированного байт-кода; JavaScript интерпретируется напрямую из файла (но часто с незаметной
См. также
Ссылки
- Стандарт ECMA-262 (англ.) (третье издание; формат Перевод стандарта ECMA-262(рус.)
- Учебники с примерами (рус.)
- Справочник (рус.)
- Ссылки на ресурсы (англ.)
- Документация от Mozilla (рус.)
- Поддержка JavaScript разными браузерами (англ.)
- Введение в JavaScript, Стефан Кох (рус.)
- Быстрый-быстрый JavaScript (рус.)
- TestCase 2.0 — среда для тестирования приложений на JavaScript (англ.)
Литература
(сравнение) Диалекты · Caja · JavaScript / LiveScript · · JavaScript OSA · JScript .NET · QtScript Движки ECMAScript InScript · · · KJS · futhark · linear_b · Narcissus · QtScript · Rhino · · · Tamarin · TraceMonkey · V8 · SquirrelFish Другое Brendan Eich · Ecma International Основные языки программирования Используемые
в разработкеIEC61131-3 Прочие
Wikimedia Foundation. 2010.
Синонимы:
Полезное
Смотреть что такое "Яваскрипт" в других словарях:
яваскрипт — сущ., кол во синонимов: 1 • язык (247) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов
ЯваСкрипт — JavaScript Класс языка: мультипарадигменный: объектно ориентированное, обобщённое, функциональное, императивное, аспектно ориентированное, прототипное программирование Тип исполнения: интерпретация, компиляция в байт код Java Появился в: 1995 г.… … Википедия
язык — Говор, наречие, диалект; слог, стиль; народ. См. народ притча во языцех См. шпион владеть языком, воздержный на язык, говорить языком кого либо, держать язык за зубами, держать язык на веревочке, держать язык на привязи, закусить язык, злой язык … Словарь синонимов