страница 130
Массивы
В JavaScript одним из наиболее полезных способов организации и хранения данных являются массивы. Представить себе самый простой массив можно в виде одномерной таблицы. В каждом столбце строки такой таблицы содержатся данные, при этом каждый столбец пронумерован. Для нумерации столбцов массива используется строгая числовая последовательность, в которой первый столбец имеет нулевой номер (программисты всегда начинают считать с нуля). Эти номера столбцов массива еще называют индексами. Чтобы получить доступ к элементу массива, необходимо знать имя этого массива и номер столбца нужного элемента массива. Поскольку значения индексов начинаются с нуля, то общее количество элементов массива (определяется свойством массива length) всегда на единицу больше самого большого индекса в массиве. Более совершенная концепция массивов позволяет создать подобие массива с несколькими строками в столбце. Такие структуры описаны в главе 30. На данном этапе имеет смысл ограничиться рассмотрением массивов, состоящих из одной строки.
Данные, хранящиеся в качестве элементов массива в JavaScript, могут быть любого типа, в том числе и объектами. В отличие от большинства других языков программирования, в различных столбцах массива JavaScript могут содержаться данные разных типов.
Создание массива
Массив определяется с помощью переменной. Поэтому при создании массива переменной присваивается объект нового массива. Да, массивы являются объектами JavaScript, но к базовому языку JavaScript они все же имеют большее отношение, чем к объектной модели документа. При объявлении массива используется специальное ключевое слово new, которое помогает вызвать специальную функцию JavaScript, генерирующую массив и выделяющую для него место в памяти. Необязательный параметр функции Array() позволяет указать еще на этапе создания массива, ориентировочное количество элементов, зарезервированных в данном массиве. В этом смысле JavaScript является очень демократичным языком, поскольку размер массива можно изменить в любое время. Поэтому если при создании нового массива в качестве параметра ничего указано не будет, то сценарий от этого совершенно не пострадает.