Сегодня существует немало применяемых в web-дизайне технологий программирования, среди которых можно назвать такие, как Java, Perl, CGI, PHP. В настоящей статье остановимся на одной из них — на языке сценариев JavaScript, которому наш журнал уже уделял некоторое внимание. Мы не ставим цель дать исчерпывающее описание языка JavaScript (что и невозможно сделать в журнальном формате), а также повторять учебники и руководства. Наша задача — дать общее представление о языке и привести наглядные примеры его использования. Надеемся, статья послужит содержательным введением в предмет и предоставит достаточный материал для начала самостоятельного программирования на JavaScript.

Краткий исторический экскурс

JavaScript берет свое начало с языка сценариев для HTML-страниц LiveScript, появившемся в Netscape Navigator 2.0 в 1995 году. Новый язык предоставлял средства контроля за заполняемыми формами со стороны клиентской части (до этого такой контроль был возможен только со стороны сервера). Примерно в это же время корпорация Sun выпустила свою пресловутую сетевую технологию, основанную на языке Java, и Netscape, используя возникший вокруг этого события ажиотаж, переименовывает LiveScript в JavaScript, хотя язык от этого практически не меняется.

Немного спустя из-за конкуренции между крупнейшими разработчиками web-технологий JavaScript начинает развиваться в разных направлениях: Netscape продолжает выпускать новые версии исходного JavaScript, в то время как Microsoft, начиная с Internet Explorer 3.0, выпускает собственную разработку —JScript. На сегодняшний день это уже разные языки, хотя и в высокой степени совместимые. В данном материале мы остановимся именно на их общей универсальной части, не вникая в различия.

Средства разработки и общие сведения о языке

JavaScript, несмотря на свое название, созвучное с Java, является самостоятельным языком web-сценариев, с Java никак не связанным. Для разработки программ на JavaScript не нужны никакие специальные инструменты: для написания сценария достаточно иметь простейший текстовый редактор, а для их исполнения — интернет-браузер. Однако для отладки больших и сложных сценариев удобнее использовать профессиональные средства, например Microsoft Script Editor, входящий в состав Microsoft Office (рис. 1).

Отдельный вопрос — поддержка браузерами сценариев на JavaScript. Необходимо отметить, что не все современные браузеры понимают JavaScript. Но это не относится к наиболее распространенным обозревателям, поэтому вероятность того, что сценарий, включенный в Вашу web-страницу, не будет исполняться на Рис. 1машине посетителя, очень невелика.

JavaScript имеет синтаксис, сходный с языком С, потому web-дизайнерам, знакомым с этим языком, начать работу с JavaScript будет несложно. Но даже если язык С вам незнаком, освоение JavaScript не будет представлять сложностей.

Сценарии на JavaScript включаются непосредственно в HTML-страницу, компилируются и выполняются браузером, что отличает JavaScript-программы, например, от программ на Java, которые хранятся во внешних модулях и для исполнения требуют специальной программной оболочки — виртуальной машины Java.

Сценарий на JavaScript внутри HTML-документа должен быть заключен в тэги . После первого тэга можно задать атрибуты, уточняющие язык сценария, но без этого можно и обойтись: по умолчанию браузеры используют в качестве языка сценариев именно JavaScript. Поскольку мы не даем в нашем обзоре систематического описания языка, в дальнейшем команды и операторы будут вводиться по мере объяснения изучаемых конструкций.

Виды сценариев

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

Первый вид сценариев — управляющие команды. Это фрагменты кода, помещаемые после тэга , т. е. в основной части web-страницы. Этот сценарий начинает выполняться сразу же после загрузки его в обозреватель. Обычно с помощью управляющих команд инициализируют какие-либо переменные, вызывают дополнительные окна, то есть проводят действия, сопровождающие загрузку страницы.

Рассмотрим конкретный пример. Допустим, мы хотим во время загрузки страницы вывести приветственное сообщение. Для этого достаточно после тэга вставить такой фрагмент:

При открытии страницы вы увидите окно сообщения с кнопкой (рис. 2). При этом от места размещения фрагмента зависит, что будет видно за этим окошком: в браузер будет загружена только часть страницы, предшествующая коду. После нажатия кнопки «ОК» загрузка страницы продолжится в обычном режиме.

Другой вид сценария — пользовательские функции. Это программы, вызываемые при наступлении определенных событий (например, при нажатии кнопки, встроенной в страницу). Опять ограничимся иллюстрирующим примером. Поместим в произвольном месте страницы (после тэга ) кнопку, реагирующую на нажатие. Для этого достаточно включить такую последовательность операторов:

<input type="button" value="Кнопка">,

а между тэгами — код функции:

function F1() { alert("Вы нажали кнопку!"); }

Смысл написанных операторов очень прост. При нажатии кнопки вызывается функция (атрибут ONCLICK показывает, какая именно), которая выводит окно сообщения, подобное показанному на рис. 2. Функции могут зависеть от произвольного числа аргументов, но список аргументов также может быть пуст, как в нашем случае. Важный момент: функции обычно помещают в заголовок Рис. 2страницы, между тэгами и , но не будет ошибкой и размещение их после тэга . Стоит специально подчеркнуть, что мы говорим о функциях, создаваемых пользователем. Кроме них в JavaScript, как и в каждом языке программирования, имеются встроенные функции. Их синтаксис и правила вызова строго определены. С примерами встроенных функций мы неоднократно встретимся ниже.

Наконец, последний вид сценариев — встроенные. Для использования встроенных сценариев их не требуется заключать в дескрипторы