Одним из основных недостатков языка HTML является пассивность и статичность документов на этом языке, то есть невозможность алгоритмического построения содержимого документа в соответствии с программой, реализующей алгоритм, или в зависимости от действий пользователя, просматривающего документ. Для преодоления этих недостатков в язык HTML введена поддержка сценариев – программ, загружаемых с сервера вместе с документом HTML и выполняемых навигатором при просмотре этого документа. Существует несколько языков, на которых может быть написан сценарий. Наибольшей популярностью пользуется язык JavaScript компании Netscape, первой реализовавшей поддержку сценариев стороны клиента в своем браузере.
Поскольку программа-сценарий выполняется пользовательским агентом на машине клиента, то данную технологию следует отнести к технологиям стороны клиента.
JavaScript, как и другие языки для встраивания сценариев в HTML-документы, имеет программный интерфейс для доступа навигатору. Навигатор, как правило, имеет панель инструментов, строку ввода адреса, рабочую область и строку состояния. Панель инструментов, как минимум, содержит кнопки "Back", "Forward", "Stop", "Reload" и "Home". Используя язык JavaScript, можно управлять содержимым рабочей области и строки состояния, а также открывать новые окна навигатора, возможно, без панели инструментов и строки ввода адреса. Кроме того, можно вызывать простейшие диалоговые панели с кнопками и полями ввода.
Для доступа к компонентам в языке JavaScript используются объекты. Под объектом понимается некоторая программная абстракция, в которой инкапсулированы свойства (данные) и методы (код) некоторого реального объекта. В языке JavaScript между объектами не устанавливается отношения наследования. Таким образом, JavaScript не является объектно-ориентированным языком.
С понятием объекта связано понятие класса. Каждый объект принадлежит определенному классу. Например, каждый объект "окно" принадлежит классу "окно" (window). Можно сказать, что каждое конкретное окно является переменной типа window или экземпляром класса window. С этой точки зрения, понятие класса близко к понятию типа.
|
Таблица 5 |
|
|
Операторы языка JavaScript |
|
|
Оператор |
Описание |
|
var name = value |
Объявление переменной name и присвоение ей значения value |
|
if (cond) {...} else {...} |
Оператор условия |
|
while (cond) {...} |
Цикл с предусловием |
|
for (init; cond; modif) {...} |
Цикл с параметром. Перед выполнением цикла осуществляется инициализация init. Перед каждой итерацией цикла проверяется условие cond. После каждой итерации производится модификация параметра цикла modif. |
|
for (prop in obj) {...} |
Цикл свойств объекта obj |
|
break |
Оператор прерывания цикла |
|
continue |
Оператор продолжения цикла |
|
function name(par) {...} |
Определение функции |
|
Таблица 6 |
|
|
Встроенные функции JavaScript |
|
|
Функция |
Описание |
|
string escape(string) |
Перевод строки в escape-последовательность |
|
string unescape(string) |
Перевод escape-последовательности в строку |
|
number parseFloat(string value) |
Перевод строки в вещественное число |
|
number parseInt( string value, [number radix] ) |
Перевод строки в целое число в заданной системе счисления |
|
Bool isNaN(number) |
Проверка на "не число" (Not-a-Number). Не числом является, например, бесконечность, получающаяся при делении на 0. |
|
string eval(string) |
Выполнить строку |
|
Таблица 7 |
|
|
Классы JavaScript |
|
|
Свойства и методы |
Описание |
|
string: Строка (с информацией о выводе на экран) |
|
|
number length |
Длина строки |
|
string big() |
Большой шрифт |
|
string small() |
Маленький шрифт |
|
string bold() |
Полужирный шрифт |
|
string italics() |
Наклонный шрифт |
|
string strike() |
Перечеркнутый |
|
string fixed() |
Моноширинный шрифт |
|
string sub() |
Нижний индекс |
|
string sup() |
Верхний индекс |
|
string blink() |
Мигающая строка |
|
string toLowerCase() |
Строчные буквы |
|
string toUpperCase() |
Заглавные буквы |
|
string fontsize(number size) |
Установить размер символов |
|
string fontcolor(string color) |
Установить цвет символов |
|
string anchor(string name) |
Превращает строку в "якорь" name |
|
string link(string href) |
Превращает строку в гиперссылку href |
|
string charAt(number i) |
i-й символ строки |
|
number indexOf(string what, [number from]) |
Позиция подстроки what, начиная с позиции from |
|
number lastIndexOf(string what, [number from]) |
Позиция подстроки what при просмотре в обратном порядке, начиная с from |
|
string substring(number begin, number end) |
Подстрока |
|
window: Окно |
|
|
string name |
Название окна |
|
string defaultStatus |
Содержимое строки состояния по умолчанию |
|
string status |
Строка состояния |
|
number length |
Число фреймов в окне |
|
frame[] frames |
Массив фреймов |
|
Продолжение табл. 7 |
|
|
Свойства и методы |
Описание |
|
window self |
Ссылка на себя |
|
window window |
Ссылка на себя |
|
window parent |
Родительское окно |
|
window top |
Ссылка на верхнее окно в иерархии |
|
document document |
Документ |
|
frame frame |
Фрейм |
|
location location |
Местоположение отображаемого содержимого |
|
window open(string URL, string Name, string features) |
Открыть новое окно. Параметр features представляет собой список параметров и значений, перечисленных через запятую. Название параметра и значение разделяются символом "=". Возможны следующие параметры: toolbar, location, directories, status, menubar, scrollbars, resizeable, width, height. Все параметры, кроме width и height принимают логические значения (yes, no, 1 или 0). Параметры width и height принимают целочисленные значения. |
|
close() |
Закрыть окно |
|
timeout setTimeout(string expr, number msec) |
Установить таймаут |
|
clearTimeout(timeout t) |
Удалить таймаут |
|
alert(string message) |
Диалоговая панель с сообщением message и кнопкой Ok |
|
bool confirm(string message) |
Диалоговая панель с сообщением message и кнопками Ok и Cancel |
|
string prompt(string message, string default) |
Диалоговая панель с сообщением и полем ввода |
|
frame: Фрейм |
|
|
string name |
Название |
|
number length |
Число внутренних фреймов |
|
frame[] frames |
Набор фреймов внутри данного |
|
frame self |
Ссылка на себя |
|
frame window |
Ссылка на себя |
|
frame parent |
Ссылка на родительский фрейм |
|
window parent |
Ссылка на родительское окно |
|
timeout setTimeout(string expr, number msec) |
Установить таймаут |
|
clearTimeout (timeout t) |
Удалить таймаут |
|
Продолжение табл. 7 |
|
|
Свойства и методы |
Описание |
|
location: Идентификатор ресурса |
|
|
string hash |
Поле fragment в URI |
|
string host |
Поля host и port в URI |
|
string hostname |
Поле host в URI |
|
string href |
URI |
|
string pathname |
Поле path в URI |
|
number port |
Поле port в URI |
|
string protocol |
Поле protocol в URI |
|
string search |
Параметры в URI для программы CGI |
|
document: Документ (содержимое окна) |
|
|
string title |
Заголовок |
|
string URL |
URI |
|
Date lastModified |
Дата и время последней модификации документа |
|
string fgColor |
Цвет переднего плана |
|
string bgColor |
Цвет фона |
|
string linkColor |
Цвет ссылки |
|
string alinkColor |
Цвет ссылки во время перехода |
|
string vlinkColor |
Цвет посещенной ранее ссылки |
|
anchor anchor |
Якорь |
|
link link |
Ссылка |
|
history history |
Набор ссылок |
|
form form |
Форма |
|
anchor[] anchors |
Массив "якорей" |
|
link[] links |
Массив ссылок |
|
form[] forms |
Массив форм |
|
string referrer |
URI документа, из которого вызван текущий |
|
open([string mime]) |
Начать вывод содержимого документа |
|
close() |
Завершить вывод содержимого документа |
|
write(...) |
Вывести в качестве содержимого документа |
|
writeln(...) |
Вывести в качестве содержимого документа и перевести строку |
|
history: Набор ссылок |
|
|
number length |
Число ссылок в памяти |
|
back() |
Вернуться на предыдущую страницу |
|
forward() |
Загрузить следующую страницу |
|
go(number delta) |
Перейти |
|
go(string location) |
Перейти |
|
static Math: Математические константы и функции |
|
|
number E |
E |
|
Продолжение табл. 7 |
|
|
Свойства и методы |
Описание |
|
number LN2 |
ln(2) |
|
number LN10 |
ln(10) |
|
number LOG2E |
log2(e) |
|
number LOG10E |
log10(e) |
|
number PI |
p |
|
number SQRT1_2 |
1/sqrt(2) |
|
number SQRT2 |
sqrt(2) |
|
number abs(number a) |
Абсолютное значение |
|
number acos(number a) |
Арккосинус |
|
number asin(number a) |
Арксинус |
|
number atan(number a) |
Арктангенс |
|
number ceil(number a) |
Наименьшее целое, не меньшее a |
|
number cos(number a) |
Косинус |
|
number exp(number a) |
Экспонента |
|
number floor(number a) |
Наибольшее целое, не большее a |
|
number log(number a) |
Натуральный логарифм |
|
number max(number a, number b) |
Максимум |
|
number min(number a, number b) |
Минимум |
|
number pow(number a, number b) |
ab |
|
number random() |
Случайное число от 0 до 1 |
|
number sin(number a) |
Синус |
|
number sqrt(number a) |
Квадратный корень |
|
number tan(number a) |
Тангенс |
|
Date: Дата и время |
|
|
Date() |
Инициализация объекта текущей датой и временем |
|
static number UTC(number year, number month, number day [[[, number hrs], number min], number sec]) |
Возвращает число миллисекунд, прошедших от Epoche (01.01.1970 00:00:00 GMT) до даты, указанной в качестве параметра |
|
static number parse(string time) |
Возвращает число миллисекунд, прошедших от 01.01.1970 00:00:00 по местному времени до даты, указанной в качестве параметра |
|
number getDate() |
Число |
|
number getDay() |
День недели |
|
number getHours() |
Часы |
|
number getMinutes() |
Минуты |
|
number getMonth() |
Месяц |
|
number getSeconds() |
Секунды |
|
number getTime() |
Число миллисекунд с Epoche |
|
number getTimeZoneOffset() |
Смещение временной зоны |
|
Окончание табл. 7 |
|
|
Свойства и методы |
Описание |
|
number getYear() |
Год, начиная с 1900 |
|
setDate(number Date) |
Установка даты |
|
setHours(number Hours) |
Установка часов |
|
setMinutes(number Minutes) |
Установка минут |
|
setMonth(number Month) |
Установка месяца |
|
setSeconds(number Seconds) |
Установка секунд |
|
setTime(number Time) |
Установка времени в миллисекундах, прошедших с Epoche |
|
setYear(number Year) |
Установка года |
|
string toGMTString() |
Преобразование к строке с датой и временем по Гринвичу |
|
string toLocaleString() |
Преобразование к строке с местными датой и временем |
|
Array: Массив |
|
|
Array() |
Пустой массив |
|
Array(number size) |
Массив с size элементами |
|
Array(a0, a1, ...) |
Массив с элементами, инициализированными a0, a1, ... |
|
number length |
Число элементов массива |
|
string join() |
Объединение элементов массива в строку |
|
reverse() |
Изменение порядка элементов массива на обратный |
|
sort() |
Сортировка элементов в массиве |
|
Image: Изображение |
|
|
Image() |
Пустое изображение |
|
Image(number w, number h) |
Пустое изображение с заданными размерами |
|
string src |
URI ресурса, содержащего изображение |
![]() |