Var foo; // значение переменной foo является undefined

Тип Object (объектный)

Значением данного типа являются объекты. Объект — это неупорядоченный набор свойств методов.

var myObj = {'pr_1': 'string', 'pr_2': 2 , 'pr_3' : false};

Переменные, массивы и константы.

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

Имена переменных в JavaScript должны начинаться с буквы или подчеркивания ("_"), последующие символы могут быть буквами и/или цифрами. Следует учитывать, что JavaScript чувствителен к регистру.

Определение по умолчанию. Можно где-нибудь в тексте скрипта использовать правильное имя переменной и присвоить ему значение, используя символ "=", например, x = 42.

С использованием служебного слова var. Это слово используется для определения переменной, причем можно как разделить описание переменной и ее определение, так и их объединить.

По способу использования в программе переменные делятся на два типа:

· глобальные;

· локальные.

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

Целые. Целые константы бывают десятичные, шестнадцатеричные и восьмеричные. Различаются они следующим образом: десятичная константа обязательно начинается не с нуля. Если все-таки константа начинается с нуля, то считается, что это восьмеричное число. Понятно, что такое число должно содержать в своей записи только цифры от 0 до 7. Если константа начинается с символов 0x (или 0X), то это значит, что она шестнадцатеричная, то есть в ее записи, помимо известных вам цифр от 0 до 9 используются латинские буквы a - f или A - F, которые, соответственно заменяют числа 10 - 15.

Константы с плавающей точкой. Они вам известны из изученных ранее языков программирования.

Логические константы. Также как, например, в языке программирования Паскаль, они имеют два значения: true(истина) и false (ложь).

Строковые константы. К данному типу относятся символы, заключенные в двойные (") или одинарные кавычки ('). Примеры строковых литералов: "строка", 'еще строка', "4321", "первая строка\n вторая строка".

Массивы

Объект Array - этот объект очень удобен для хранения массивов данных. Массив представляет собой набор элементов. Доступ к отдельному элементу производится по имени и индексу (номеру). Нумерация элементов в JavaScript начинается с нуля.

Например, массив названий дней недели можно задать следующим образом:

DayNames=new Array ("воскресенье", "понедельник", "вторник",

"среда", "четверг", "пятница", "суббота");

Для доступа к отдельным элементам массива используют конструкцию:

имя_массива [индекс]

С учетом предыдущего объявления конструкция

alert (DayNames[0]);

выведет на экран диалоговое окно, в котором будет выведен текст "воскресенье".

Приведенный выше массив можно задать по-другому:

DayNames=new Array (7); //Количество элементов массива

//Присвоим каждому элементу массива конкретное значение.

DayNames[0] = "воскресенье";

DayNames[1] = "понедельник";

. . . . . .

DayNames[6] = "суббота";

Операторы и встроенные функции

Помимо функций, определяемых пользователем, в программах JavaScript можно использовать еще так называемыевстроенные функции. Эти функции встроены в интерпретатор JavaScript, т.е. они объявлены и реализованы внутри него.

Функция Описание
escape (<строка>) Возвращает строку в URL-формате, т.е., например, все буквы русского алфавита заменяет их шестнадцатеричными кодами, оставляя без изменения буквы латинского алфавита и цифры
eval(<строка>) Вычисляет выражение, находящееся в <строке>, как если бы оно находилось в коде программы
isFinite(<выражение>) Проверяет, является ли <выражение> конечным числом. Значение false возвращается в случае, если <выражение>является не числом или бесконечностью. В противном случае - true
isNaN(<выражение>) Возвращает true, если <выражение> является не числом (т.е. бесконечностью или ошибкой, NaN (Not a Number) - не число), и false - если число
parseFloat(<строка>) Преобразует <строку> в число с плавающей запятой. Если <строка> не может быть преобразована, то возвращает NaN
parseInt (<строка>,<основание>) Преобразует <строку> в целое число системы счисления, определяемой <основанием>. По умолчанию используется десятичная система счисления. Если <строка> не может быть преобразована, то возвращает NaN
unescape(<строка>) Декодирует строку, закодированную функцией escape

Функции ввода/вывода.

Функция confirm() позволяет вывести диалоговое окно с сообщением и двумя кнопками OK и Отмена (Cancel). Общий вид этой функции следующий:

s=confirm(текст) ;

Для ввода данных используется функция prompt(), общий вид которой следующий:

x=prompt(текст, значение по умолчанию);

Условные и циклические конструкции

Оператор if …else.

if (<выражение>)

<оператор1>;

else

<оператор2>;

а также его сокращенную форму:

if (<выражение>) <оператор1>;

Вначале вычисляется значение выражения. Если его значение отлично от нуля, то выполняется оператор1. Если его значение равно нулю, и если есть else-часть, то выполняется оператор2. Если значение выражения равно нулю, но конструкция else отсутствует (имеется в наличии сокращенная форма условного оператора), то никаких действий в этом операторе не выполняется, а осуществляется переход к следующему оператору.

Если на месте оператора1 и оператора2 находится несколько операторов, то они заключаются в фигурные скобки:

if (<выражение>)

{ <оператор1>; <оператор2>; ... <операторN>; }

Выражение в операторе if обычно является логическим. Однако оно может быть также и числовым, и строковым. В случае строкового выражения условие считается истинным, если значением выражения является непустая строка. В случае числового выражения условие истинно, если значение выражения отлично от нуля.

Оператор switch.

switch ( <выражение>)

{ case <значение1>: <операторы1>

break;

case <значение2>: <операторы2>

break;

. . . . . . .

case <значениеN>: <операторыN>

break;

default: <операторыM> }

Параметр выражение может принимать строковые, числовые и логические значения. Ключевые слова break и default не являются обязательными.

Оператор switch работает следующим образом. Сначала вычисляется значение выражения. Если же значению выражения не соответствует ни одно из значений, расположенных после case, управление передается коду, расположенному после ключевого слова default. Отметим, что в случае отсутствия default выполнение программы продолжается с оператора, следующего за оператором switch.

Внутри оператора switch (а также внутри циклических конструкций, но об этом - позже) break приводит к передаче управления на код, стоящий после оператора switch. Если break отсутствует, после текущего раздела case будет выполняться следующий.

Оператор цикла с предусловием (цикл while)

Оператор while является оператором цикла с предусловием. Он применяется в тех случаях, когда неизвестно количество повторений тела цикла. Выполнение последовательности операций в данном операторе продолжается до тех пор, пока условие продолжения цикла истинно. Синтаксис оператора следующий:

while (<условие>)

{ <действие1>;

<действие2>;

. . . . .

<действиеN>; }

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

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

Оператор цикла с простусловием (цикл do-while)

В отличии от конструкции while тело цикла в операторе do-while выполнится хотя бы один раз, так как условие проверяется после выполнения тела цикла. Если условие истинно, то снова выполняется тело цикла. В противном случае управление передается оператору, идущему после конструкции while.

do

{ <действие1>;

<действие2>;

. . . . .

<действиеN>; }

while (<условие>);

Оператор цикла с параметром (цикл for)

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

for (<начальное значение>;<условие цикла>;<шаг>)

{ <действие1>;

<действие2>;

. . . . .

<действиеN>; }

Условие цикла проверяется перед каждой новой итерацией цикла и возвращает логическое значение. Если возвращается значение true, то выполняется тело цикла, после чего выполняется третье выражение в параметрах цикла.

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

Этот браузер, как и другие Windows-приложения, разработан с использованием технологии Automation, базирующейся на принципах объектно-ориентированного программирования. Это значит, что созданное таким образом приложение не только представляет собой иерархически упорядоченный набор объектов, но и предоставляет другим приложениям возможность управлять работой этих объектов. Поэтому здесь мы рассмотрим, во-первых, часть иерархии объектов браузера Internet Explorer, и, во-вторых, основные свойства и методы этих объектов, которые позволят нам управлять "внешним видом" (за это "отвечают" свойства) и "поведением" (а за это - методы) этих объектов.

Во главе иерархии находится объект window, который представляет окно браузера и порождает все остальные объекты. При ссылке на любой объект из иерархии можно не указывать родительский объект window.

Некоторые объекты могут группироваться в наборы. Пусть, например, имеется документ, в котором расположено несколько форм. Так вот, в данном документе имеется набор forms, который состоит из нескольких (а, может быть, даже из одного, если форма одна) элементов form.

Содержимое окна браузера может представлять собой набор фреймов, которые как раз представляют собой набор объектов frames. Каждый объект этого набора (объект frame), имеет в своем подчинении объект document, который, как понятно из его названия, содержит описание документа.

Объект location хранит информацию о текущем URL-адресе. Объект navigator предназначен для получения информации о браузере. Объект history является массивом документов (отсчет в массиве начинается с единицы), открытых за текущий сеанс работы с браузером. Используя данный объект, организуется повторная загрузка документов.

Набор links представляет собой массив гиперссылок. Наборanchors представляет собой массив меток документа, на которые осуществляется переход по гиперссылкам. Наборforms является массивом форм документа (отсчет элементов массива начинается с нуля). Каждый объект form, входящий в этот набор, имеет набор подчиненных объектов elements, который представляет собой перечень управляющих элементов, расположенных на этой форме (кнопки, меню, поля для ввода многострочного текста и т.п.).

Основные свойства, методы и события объекта Window

Объект window представляет собой окно браузера и является начальным (корневым) объектом. Напомним, что свойства позволяют управлять "внешним видом" объекта; методы - это действия, которые может выполнять объект; события - подпрограммы, которые выполняются "в ответ" на возникновение какой-либо особой ситуации (загрузка документа, щелчок мыши и т.п.). Таким образом, чтобы обработать какое-либо событие, достаточно разместить в HTML-документе соответствующую подпрограмму. Обращение к ней браузер осуществит автоматически. Если обработчик какого-либо события отсутствует в HTML-документе, то никаких действий выполняться не будет. В этом случае говорят, что "событие не обработано".

Название Описание
Свойства
defaultStatus Значение по умолчанию строки состояния браузера.
document Ссылка на объект document в текущем окне.
self Ссылка на текущее окно.
status Ссылка на строку состояния.
frames Ссылка (имя фрейма или его номер) на массив фреймов текущего окна.
name Имя окна
parent Ссылка на родительский объект.
top Ссылка на самый верхний в иерархии объект window.
dialogTop dialogLeft dialogHeight dialogWidth Соответственно координата Y, координата X, высота и ширина окна (в пикселях), созданного методомshowModalDialog.
Методы
alert (<строка>); Вывод диалогового окна с заданной строкой и кнопкой OK.
<переменная>= confirm( <строка>); Вывод диалогового окна с заданной строкой и кнопками OK и Cancel. В переменную помещается true(нажата OK) или false (нажата Cancel).
<переменная>= prompt(<строка сообщения>, <значение по умолчанию>); Вывод диалогового окна со строкой ввода, в которой находится значение по умолчанию. Если нажата кнопкаOK, то в переменную помещается значение из строки ввода. При нажатии Cancel - значение null (пусто).
focus(); Получение фокуса.
blur(); Потеря фокуса.
close(); Закрытие окна.
<переменная>=setInterval (<процедура>, <время в миллисекундах>); Указывает процедуре выполняться периодически через заданное количество миллисекунд.
<переменная>=setTimeout( <процедура>, <интервал>); Определяет имя процедуры, выполняемой один раз по прошествии указанного временного интервала (в миллисекундах). Переменная используется для завершения выполнения этого метода методомclearTimeout.
clearTimeout (<переменная>); Завершение выполнения процедуры, связанной с указанной переменной.
clearInterval (<переменная>); Обнуляет таймер, заданный методом setInterval.
open (<URL-адрес>,<имя нового окна>, <параметры>); Открытие HTML-документа с заданным адресом в новом окне. Параметры:
  • directories=Yes или No - вывод панели Ссылки;
  • height=число - высота окна;
  • width=число - ширина окна;
  • location=yes или no - наличие панели адресов;
  • menuBar=yes или no - наличие меню;
  • resizable=yes или no - возможность изменения размеров окна;
  • scrollbars=yes или no - наличие полос прокрутки;
  • status=yes или no - отображать ли строку состояния;
  • toolBar=yes или no - наличие панели инструментов.
execScript (<процедура>, <язык процедуры>); Выполнение процедуры с указанным именем. Второй параметр (значение "VBScript" или "JavaScript") может отсутствовать.
showModalDialog (<URL-адрес>, <аргументы>, <возможности>); Выводит диалоговое HTML-окно. Второй и третий параметры могут отсутствовать.
navigate (<URL-адрес>); Загрузка новой страницы с указанным адресом.
showHelp (<URL-адрес>, <аргументы>); Вывод файла справки.
События
onload(); Наступает после загрузки документа.
onunload(); Наступает перед выгрузкой документа.
onresize(); Наступает при изменении размеров окна.
onscroll(); Наступает при прокрутке окна.
onfocus(); Наступает при получении фокуса.
onblur(); Наступает при потере фокуса.
onhelp(); Наступает после нажатия клавиши F1, когда окно находится в фокусе.

Наши рекомендации