Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Spec_Mov_3k_4k_Lect.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.46 Mб
Скачать

Массивы

Массивы создаются в JavaScript:

  • конструктором Array(),

  • конструктором Object() либо

  • конструктором, определяемым пользователем.

Элементы в массивах могут быть различного типа.

Пример

var myArray = new Array(true, “8.0”, Date(), 3);

……………….

myArray[9] = “10-th element of Array”;

Вначале был создан массив, включающий 4 элемента. Элемент myArray[2] представляет текущую дату и время. Следующий оператор установил значение элемента myArray[9] равным строке “10-th element of Array” и одновременно увеличил размер массива. Элементы, которым не присваивались явно значения будут иметь значение null.

Каждый массив обладает свойством length, позволяющим определить число элементов в массиве, например так: myArray.length.

Пример

myArray = new Array();

Теперь переменная myArray ссылается на массив, включающий 0 элементов.

Массив может быть создан и конструктором Object(). Однако, в этом случае создается объект с индексируемыми полями, к которому не применимы методы, связанные с теми объектами, которые создаются конструктором Array.

Пример

var nextArray = new Object();

nextArray[0] = 2;

nextArray[1] = “http://www.cityscape.co.uk”;

nextArray[2] = “http://www.dircon.co.uk”;

В данном примере массив создается на основе индексируемых объектов, конструктором Object. Программист должен в программе заносить информацию о длине массива в элемент с 0-м индексом. Т.о., чтобы узнать текущую длину массива в программе - необходимо применить выражение nextArray[0]. Значение свойства nextArray.length неопределено и равно null.

Программист может записать в программе собственный конструктор для создания массивов с любой интерпретацией аргументов, например так:

function makeArray(arraySize, initValue)

{

this.len = arraySize;

for (var i = 0; i <= arraySize; i++)

this[i] = initValue;

return this;

}

В этом примере с применением данного конструктора создается объект имеющий индексированные поля и именованное поле (свойство) len. Индексированные поля заполняются значением аргумента initValue. Создание массива в программе:

var myVar = new makeArray(10, 0);

Для доступа к информации о текущей длине массива необходимо в программе записать выражение – myVar.len.

Самостоятельно: напишите конструктор для создания двумерных массивов!

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

В процессе загрузки html-документа в броузер создается иерархическая объектная модель документа. Ее знание позволяет правильно организовать ссылки к элемента документа в скриптах. Представленная ниже модель основана на материалах книги Алекса Хоумера и Криса Улмена «Dynamic HTML (DHTML)» и не претендует на полноту, поскольку каждый из представленных на рисунке объектов имеет намного больше свойств (см. Справочник: O’Reilly. Java script Reference). Имена на представленной ниже диаграмме следует рассматривать как свойства объектов, расположенных выше по иерархии и одновременно как некоторую характеристику объектов. Например, document является свойством объекта window и одновременно является объектом характеризующим документ в целом. По мере приема документа броузером, практически все тэги и контейнеры, в нем содержащиеся, преобразуются в объекты. При разработке скриптов необходимо учитывать, что броузеры различных фирм могут формировать собственную объектную модель документа, обычно незначительно отличающуюся от представленной ниже. Однако, правильность обработки ссылок в скриптах все же необходимо тестировать зазрузкой документа различными броузерами, которые предположительно будут применять пользователи сайта.

На рисунке ниже свойство all группирует все элементы документа в общую хэш-таблицу, что позволяет выполнять ссылки к элементам документа посредством индексов, в качестве которых можно использовать имена соответствующих тэгов. Если документ обладает фреймовой структурой, то ниже объекта window по иерархии располагаются объекты соответствующие фреймам, содержащимся в окне. К элементам форм можно обращаться через общее свойство elements или через свойства, соответствующие отдельным типам элементов. Рассмотрим примеры.

Пример

В документе содержится форма, содержащая в качестве элемента текстовую область. Атрибут name текстовой области имеет значение “message”. Тогда к свойству value текстовой области (value определяет содержимое текстовой области) можно обратиться следующим образом:

document.forms[0].message.value = “Текст сообщения не введен!”;

Если атрибут name формы имеет значение “myForm”, то тот же оператор можно переписать так:

document.forms[“myForm”].message.value = “Текст сообщения не введен!”;

К свойству action (соответствует тегу action) той же формы можно обратиться так:

var vform = document.forms[“myForm”]; … vform.action …

Пример

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

window.location.href= ”product.vidget33.html”;//префикс window можно не указывать

или

document.location = ”product.vidget33.html”;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]