JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам [9] .
JavaScript /strong>
Билл Джой
Помимо Брендана Эйха в разработке участвовали [17] сооснователь [19] Netscape Communications Марк Андрессен и сооснователь Sun Microsystems Билл Джой. чтобы успеть закончить работы над языком к релизу браузера, компании заключили соглашение о сотрудничестве в разработке [20]. Они ставили перед собой цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов, Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией [17] .
Первоначально язык назывался Mocha [21] [22] [23]. затем он был переименован в LiveScript [23] [24] и предназначался как для программирования на стороне клиента, так и для программирования на стороне сервера (там он должен был называться LiveWire) [20]. На синтаксис оказали влияние языки Си и Java. и, поскольку Java в то время было модным словом [17] [20]. 4 декабря 1995 года LiveScript переименовали в JavaScript [25]. получив соответствующую лицензию у Sun. Анонс JavaScript со стороны представителей Netscape и Sun состоялся накануне выпуска второй бета-версии Netscape Navigator [17]. В нём декларируется, что 28 лидирующих ИТ-компаний выразили намерение использовать в своих будущих продуктах JavaScript как объектный скриптовый язык с открытым стандартом [26] .
В 1996 году компания Microsoft выпустила аналог языка JavaScript, названный JScript. Анонсирован этот язык был 18 июля 1996 года [27]. Первым браузером, поддерживающим эту реализацию, был Internet Explorer 3.0.
По инициативе компании Netscape [28] [29] была проведена стандартизация языка ассоциацией ECMA. Стандартизированная версия имеет название ECMAScript. описывается стандартом ECMA-262. Первой версии спецификации соответствовал JavaScript версии 1.1, а также языки JScript и ScriptEasy [12] [20] .
Популярность
В статье «The World’s Most Misunderstood Programming Language Has Become the World’s Most Popular Programming Language» [30] ( (рус.) «Самый неправильно понятый язык программирования в мире стал самым популярным в мире языком программирования») Дуглас Крокфорд утверждает, что лидирующую позицию JavaScript занял в связи с развитием AJAX. поскольку браузер стал превалирующей системой доставки приложений. Он также констатирует растущую популярность JavaScript, то, что этот язык встраивается в приложения, отмечает значимость языка.
По данным Black Duck Software ( англ. ) [32] в разработке открытого программного обеспечения доля использования JavaScript росла. 36 % проектов, релизы которых состоялись с августа 2008 по август 2009 гг. включают JavaScript, наиболее часто используемый язык программирования с быстрорастущей популярностью. 80 % открытого программного обеспечения использует Си, C++, Java, Shell и JavaScript. При этом JavaScript — единственный из этих языков, чья доля использования увеличилась (более чем на 2 процента, если считать в строках кода) [33] .
JavaScript является самым популярным языком программирования, используемым для разработки веб-приложений на стороне клиента ( англ. ) [34] [35] .
Возможности языка
JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование [36] [37] обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса. объекты как списки, карринг. анонимные функции. замыкания [38] — что придаёт языку дополнительную гибкость.
Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:
В языке отсутствуют такие полезные вещи [39]. как:
2]. которая бы отслеживала зависимости и автоматически устанавливала их.
Семантика и синтаксис
В JavaScript:
- все идентификаторы регистрозависимы,
- в названиях переменных можно использовать буквы. подчёркивание. символ доллара. арабские цифры ,
- названия переменных не могут начинаться с цифры,
- для оформления однострочных комментариев используются //. многострочные и внутристрочные комментарии начинаются с /* и заканчиваются */ .
Структура языка
Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей [41] [42] [43] [44] :
Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера и объектная модель документа могут не поддерживаться [43] .
Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность [45] [46] [Спецификация 3]. что согласуется с определением DOM как независимого от языка интерфейса документа [47] [
3]. В противоположность этому ряд авторов находят BOM и DOM тесно взаимосвязанными [48] [49] .
ECMAScript не является браузерным языком и в нём не определяются методы ввода и вывода информации [41]. Это, скорее, основа для построения скриптовых языков. Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы. объекты, регулярные выражения. не ограничивая авторов производных языков в расширении их новыми составляющими.
Объектная модель браузера — браузер-специфичная часть языка [43] [50]. являющаяся прослойкой между ядром и объектной моделью документа [51]. Основное предназначение объектной модели браузера — управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window. центральным объектом DOM. Объектная модель браузера на данный момент не стандартизирована [43] [52]. однако спецификация находится в разработке WHATWG [51] [Спецификация 4] и W3C [42] [Спецификация 5] .
Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей [51] [52] :
- управление фреймами ,
- поддержка задержки в исполнении кода и зацикливания с задержкой,
- системные диалоги,
- управление адресом открытой страницы,
- управление информацией о браузере,
- управление информацией о параметрах монитора ,
- ограниченное управление историей просмотра страниц,
- поддержка работы с HTTP cookie .
Объектная модель документа — интерфейс программирования приложений для HTML и XML — документов [53]. Согласно DOM, документ (например, веб-страница) может быть представлен в виде дерева объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:
- генерация и добавление узлов,
- получение узлов,
- изменение узлов,
- изменение связей между узлами,
- удаление узлов.
Встраивание в веб-страницы
Для добавления JavaScript-кода на страницу, можно использовать теги <script></script> [Спецификация 6]. которые рекомендуется, но не обязательно, помещать внутри контейнера <head>. Контейнеров <script> в одном документе может быть сколько угодно. Атрибут «type=’text/javascript’» указывать необязательно, данное значение используется по умолчанию [54] .
Скрипт, выводящий модальное окно с классической надписью «Hello, World!» внутри браузера:
Спецификация HTML описывает набор атрибутов, используемых для задания обработчиков событий [Спецификация 7]. Пример использования:
В приведённом примере при нажатии на ссылку функция confirm(‘Вы уверены?’); вызывает модальное окно с надписью «Вы уверены?», а return false; блокирует переход по ссылке. Разумеется, этот код будет работать только если в браузере есть и включена поддержка JavaScript, иначе переход по ссылке произойдёт без предупреждения.
Использование кода JavaScript в контексте разметки страницы расценивается в рамках ненавязчивого JavaScript как плохая практика. Аналогом (при условии снабжения ссылки идентификатором alertLink)
приведённого примера может являться, например, следующий фрагмент JavaScript:
Есть и третья возможность подключения JavaScript — написать скрипт в отдельном файле, а потом подключить его с помощью конструкции
Элемент script, широко используемый для подключения к странице JavaScript, имеет несколько атрибутов.
The media types,
- application/javascript
- application/ecmascript
which are also defined in this document, are intended for common use and should be used instead.
- необязательный атрибут src. принимающий в качестве значения адрес к файлу со скриптом.
- необязательный атрибут charset. используемый вместе с src для указания используемой кодировки внешнего файла.
- необязательный атрибут defer указывает, что получение скрипта происходит асинхронно, но выполнение следует отложить до тех пор, пока страница не будет загружена целиком.
- необязательный атрибут async указывает, что получение скрипта происходит асинхронно, а выполнение будет произведено сразу по завершению скачивания. Очерёдность выполнения скриптов не гарантируется.
При этом атрибут language ( language=»JavaScript» ), несмотря на его активное использование (в 2008 году этот атрибут был наиболее часто используемым у тега <script> [56] ), относится к не рекомендуемым (deprecated), отсутствует в DTD. поэтому считается некорректным [57] .
как включить скрипт в браузере
как накрутить сообщения в вк 2018 скрипт
Еще в тему http://iprowebber.ru/pro-dzhava-skript-javascript/.