JavaScript — Скриптовый Язык, Создании Сценариев Поведения Браузера

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

Название «JavaScript» является зарегистрированным товарным знаком компании Sun Microsystems, Inc.

История

Предпосылкой появления языка JavaScript стало желание дать разработчикам HTML-документов возможность динамически управлять всеми объектами, описываемыми в коде Web-страницы.

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

По инициативе компании Netscape была проведена стандартизация языка ассоциацией ECMA. Стандартизированная версия имеет название ECMAScript, описывается стандартом ECMA-262. Первая версия данного стандарта примерно соответствовала JavaScript 1.1.

Возможности языка

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

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

  • объекты, с возможностью интроспекции;
  • функции как объекты первого класса;
  • автоматическое приведение типов;
  • автоматическая сборка мусора;
  • анонимные функции.

Семантика и синтаксис

Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk или даже Лиспу.

В JavaScript:

  • все идентификаторы регистрозависимы,
  • в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские цифры,
  • названия переменных не могут начинаться с цифры,
  • для оформления однострочных комментариев используются //, многострочные и внутристрочные комментарии начинаются с /* и заканчиваются */.

Структура языка

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM)
  • объектная модель документа (Document Object Model или DOM).

Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность, что согласуется с определением DOM как независимого от языка интерфейса документа.

Ядро

ECMAScript не является браузерным языком и на самом деле в нём не определяются методы ввода и вывода информации. Это скорее основа для построения скриптовых языков. Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков от расширения их новыми составляющими.

Объектная модель браузера

Объектная модель браузера — браузероспецифичная часть языка, являющаяся прослойкой между ядром и объектной моделью документа. Основное предназначение объектной модели браузера — управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window, центральным объектом BOM. Объектная модель браузера на данный момент не стандартизирована, однако спецификация находится в разработке WHATWG.

Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей:

  • управление фреймами,
  • поддержка задержки в исполнении кода и зацикливания с задержкой,
  • системные диалоги,
  • управление адресом открытой страницы,
  • управление информацией о браузере,
  • управление информацией о параметрах монитора,
  • ограниченное управление историей просмотра страниц,
  • поддержка работы с HTTP cookie.

Объектная модель документа

Объектная модель документа — интерфейс программирования приложений для HTML и XML-документов. Согласно DOM документу можно поставить в соответствие дерево объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:

  • получение узлов,
  • изменение узлов,
  • изменение связей между узлами,
  • удаление узлов.

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

JavaScript в данный момент полностью занимает нишу браузерных языков.

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

JavaScript используется и для написания прикладного ПО. Одним из ярких примеров является Mozilla Firefox, 57 % исходного кода которого написано на JavaScript (для сравнения, следующим языком программирования по объёму кодовой базы Firefox является C++, доля которого составляет 17 %).

Расположение внутри страницы

JavaScript-код включается в код страницы и исполняется интерпретатором, встроенным в браузер. JavaScript заключается в теги <script></script>.

Скрипт, выводящий модальное окно с классической надписью «Hello, World!» внутри браузера:

<script type="text/javascript"> alert('Hello, World!'); </script>

Расположение внутри тега

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

<a href="delete.php" onclick="return confirm('Вы уверены?'); ">Удалить</a>

Отделение от разметки

В приведённом примере при нажатии на ссылку функция confirm('Вы уверены?'); вызывает модальное окно с надписью «Вы уверены?», а return false; блокирует переход по ссылке. Разумеется, этот код будет работать только если в браузере есть и включена поддержка JavaScript, иначе переход по ссылке произойдёт без предупреждения.

Использование кода JavaScript в контексте разметки страницы в рамках ненавязчивого JavaScript расценивается как плохая практика. Аналогом (при условии снабжения ссылки идентификатором alertLink)

<a href="delete.php" id="alertLink">Удалить</a>

приведённого примера может выступать, например, следующий фрагмент JavaScript:

window.onload = function() {
var linkWithAlert = document.getElementById("alertLink");
linkWithAlert.onclick = function() {
return confirm('Вы уверены?');
};
};

Вынесение в отдельный файл

Есть и третья возможность подключения JavaScript — написать скрипт в отдельном файле, а потом подключить его с помощью конструкции

<script type="text/javascript" src="http://Путь_к_файлу_со_скриптом"></script>

Безопасность

JavaScript позволяет потенциальным авторам вредоносного кода запускать его на любом компьютере сети: для этого достаточно открыть на нём web-страницу. Это обуславливает наличие двух принципиальных ограничений:

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

Помимо этого, разработчики браузеров вносят дополнительные ограничения в ответ на имеющие место злоупотребления. Так появился, в частности, запрет на открытие окна, размер одной стороны которого меньше ста пиксел.


Login:
Password:








Украина онлайн


тостыкаталог сайтовкаталог ссылокпартнеры тост дня
ERA.COM.UA
интернет портал

[Free-Search.org.ua] - Бесплатный каталог сайтов

Отличный каталог сайтов


Copyright © 2009 group of php software developers