Что такое JavaScript?

Как насчет динамически генерируемых страниц, внешний вид которых зависит от времени дня, или форм, не позволяющих посетителям Web-узла вводить в них некорректные данные? Язык JavaScript может делать все это и даже гораздо больше.

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

Как использовать JavaScript?
Имеются две основные разновидности JavaScript: интерпретируемый язык для создания приложений, исполняемых на клиентской стороне, и компилируемый - для разработки серверных программ. Последний существует исключительно в рамках продукта Netscape LiveWire. Мы же сосредоточим внимание на первой разновидности, с которой обычно имеют дело пользователи Web. Клиентский вариант JavaScript представляет собой просто набор команд, предназначенных для встраивания в HTML-страницы, как правило, между тегами <SCRIPT LANGUAGE = "JavaScript"> и </SCRIPT>. Хотя этот способ использования JavaScript, по-видимому, не отличается от принятого в HTML, последний предназначен для описания компоновки и структуры документов, встроенных в них объектов и междокументных ссылок, тогда как JavaScript добавляет логику и функции программирования.

JavaScript-команды помещаются в файлах HTML в основном в трех местах: в тегах <HEAD> и <BODY>, а также в тегах конкретных элементов форм. Когда страница со встроенными JavaScript-командами загружается в поддерживающий этот язык броузер, такие команды интерпретируются и исполняются строка за строкой. Некоторые из них, в частности команда вставки даты внизу страницы, исполняются немедленно, другие же, такие как связанная с экранной кнопкой, - только по совершении пользователем соответствующего действия.

Тем, кому приходилось пользоваться языками, подобными C, сравнительно несложный синтаксис JavaScript должен показаться знакомым. (Дополнительную информацию можно получить из обучающего материала "JavaScript Tutorial", опубликованного по адресу wwwnetguidemag.com/techshop.) Сложнее всего при применении JavaScript понять то, что все множество объектов, отображаемых в окне броузера (окна, фреймы, формы, списки и т. д.), может управляться из JavaScript-сценария просто при помощи соответствующих объектных ссылок на них.

Объекты имеют внутренне присущие им свойства (атрибуты), а объектно-ориентированные программы, обладая широкими возможностями, легко поддаются модернизации. Используя объектно-ориентированные концепции броузеров, сам броузер можно смоделировать как совокупность составляющих его объектов - окна, фреймов, документа, форм и их элементов и т. п. Так, окно броузера в подобной модели может быть представлено объектом window, обладающим таким атрибутом, как строка состояния внизу экрана, в которой появляются сообщения, допускающие просмотр и модификацию. Содержание строки состояния может быть установлено JavaScript-командой, например window.status = "Hello World".

Кроме того, JavaScript предлагает встроенные функции, или методы, которые могут быть применены к объектам при выполнении стандартных видов работ с ними. Предположим, вам понадобилось создать небольшое окно с уведомлением. Это можно осуществить с помощью объекта window, воспользовавшись командой window.alert("Hello World"). После ее исполнения на экране появится окно с текстом "Hello World" внутри него.

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