Продолжаю рубрику Веб-программирование и ее раздел Уроки JavaScript для начинающих. Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем рубрику Уроки JavaScript для начинающих. В данной рубрике были публикации: Инструкции JavaScript, Функции JavaScript, переменный JavaScript и типизация JavaScript переменных, синтаксис JavaScript, значение null и значение undefined JavaScript, значения true и false в JavaScript, выражения и операторы JavaScript, операторы void, delete, new и typeof, преобразование число в строку и строку в число, символы и строки JavaScript, числа JavaScript, типы данных JavaScript, способы вставки JavaScript в HTML и Условия JavaScript. Инструкция if JavaScript и конструкция else JavaScript.
Массивы JavaScript. JavaScript Array. Функция-конструктор Array () JavaScript
Сегодня я рассмотрю JavaScript массивы, рассматривать JavaScript массивы я буду, как тип данных JavaScript. В этой публикации мы разберемся с тем, что такое JavaScript массив, с размерностью JavaScript массива, с типами данных, которые могут храниться в JavaScript массиве, со структурой JavaScript массива, рассмотрим, как можно инициализировать и объявит JavaScript массив, как можно создать JavaScript массив при помощи функции-конструкции Array () JavaScript и посмотрим, как можно обратиться к элементу JavaScript массива.
Не забываем подписываться на RSS-ленту, twitter и на публичную страницу Вконтакте
JavaScript массив (javaScript array), как тип данных JavaScript
//
//
JavaScript массивы(Array JavaScript), как и массивы практически в любом другом слабо типизированном языке программирования (JavaScript относится к слабо типизированным языкам программирования), это упорядоченный набор или коллекция значений. JavaScript массивы можно сравнить с комодом или с полкой, у которой выдвижные ящики, каждый из которых пронумерован. JavaScript массивы(JavaScript Array) являются объектным типом данных JavaScript. Я не случайно сравнил JavaScript массивы с полкой, у которой выдвижные ящики и каждый и каждый ящик пронумерован, так как в JavaScript массиве каждое значение имеет свой номер или индекс.
Каждое значение, которое хранится в JavaScript массиве, называется элемент JavaScript массива. Таким образом, мы можем обращаться к конкретному элементу JavaScript массива, просто указывая в квадратных скобках порядковый номер (индекс JavaScript массива). Например, давайте представим, что у нас есть JavaScript массив с именем newMas и нам для каких-либо операций нужен пятый элемент JavaScript массива newMas. К пятому элементу массива newMas мы можем обратиться следующим образом (другими словами извлечь пятый элемент JavaScript массива):
[php]
newMas[4]
[/php]
Я не ошибся, когда указал в квадратных скобках цифру 4, потому что элементы JavaScript массива нумеруются с нуля. То есть, если мы захотим извлечь 10 элемент JavaScript массива, то в квадратных скобках мы должны указывать цифру 9. Все элементы JavaScript массива имеют индекс, который не может быть меньше 0 и не может быть дробным, то есть индекс JavaScript массива – это целое неотрицательное число. JavaScript массивы могут хранить в себе любой тип данных, то есть в принципе любой: JavaScript числа, JavaScript строки, другие JavaScript массивы, JavaScript функции, логические значения false и true JavaScript, значение null JavaScript и undefined JavaScript и т.д.
Если один JavaScript массив содержит в себе другой массив, то такие массивы можно назвать двумерными или другими словами матрица, конечно, «двумерные JavaScript массивы» не обладают всеми теми свойствами двумерных массив, как например двумерные массивы языка C, но все-таки это некоторое подобие. Так же не путайте JavaScript массивы с ассоциативными JavaScript массивами, о которых мы поговорим в других публикациях. Давайте рассмотрим еще один пример JavaScript массива:
[php]
document.images[6].height
[/php]
В этом примере мы обращаемся к свойству height, которое хранится в 7 элементе JavaScript массива(Array JavaScript), сам JavaScript массив имеет название images и хранится, точнее images – это свойство объекта document JavaScript. Помимо того, что в JavaScript можно создать подобие двумерного массива, в JavaScript можно создать подобие сколь угодно многомерного массива, ведь тип данных JavaScript, хранящихся в каждом отдельном элементе JavaScript массива может быть любым, и даже внутри одного JavaScript массива могут быть различные типы данных, в отличие от строго типизированных языков программирования.
Если обычные JavaScript массивы индексируются целыми неотрицательными числами, числами больше, либо равными нулю, то ассоциативные JavaScript массивы индексируются строками, каждая такая строка ассоциативного JavaScript массива должна быть уникальной и не быть одинаковой с другой индексирующей строкой ассоциативного JavaScript массива, но более подробно про ассоциативные JavaScript массивы я собираюсь написать в одной из следующих публикаций.
Так же стоит сказать, что количество элементов, хранящихся в JavaScript массиве не указывается, следовательно вы можете добавлять сколь угодно много элементов в уже созданный JavaScript массив, такие вольности недопустимы в строго типизированных языках программирования, в них размерность массива указывается заранее, в отличие от безразмерных JavaScript массивов. Что же, давайте перейдем к разговору о том, как создать JavaScript массив.
Как создать JavaScript массив. Функция конструктор Array () JavaScript.
//
//
JavaScript массив(Array JavaScript) может быть создан при помощи функции-конструктора Array () JavaScript. Я уже писал о том, что массивы JavaScript безразмерные и им можно добавлять любое количество элементов в процессе написания сценария JavaScript, каждому добавляемому элементу будет присваиваться новый индекс, который больше предыдущего на единицу, давайте рассмотрим пример, в котором мы создадим JavaScript массив при помощи функции-конструктора Array ():
[php]
var m = Array ();
m[0] = “John”;
m[1] = 25;
m[2] = false;
[/php]
В данном примере мы создали JavaScript массив с именем “m” при помощи функции-конструктора Array () JavaScript и добавили ему три элемента. Как вы видите: элементы JavaScript массива могут иметь любой тип данных, в данном случае первый элемент массива – это JavaScript строка, второй элемент массива – это JavaScript число, третий элемент – это логическое значение false JavaScript. Таким способом мы можем и далее добавлять элементы в JavaScript массив. Но элементы JavaScript массива могут передаваться непосредственно функции-конструктору Array () JavaScript, то есть JavaScript массивы можно создавать и так:
[php]
var m = Array ( “John”, 25, false);
[/php]
Обратите внимание: когда мы передаем элементы JavaScript массива функции-конструктору Array () JavaScript, значения разделяются запятой. Если мы передадим функции-конструктору Array () JavaScript одно целое неотрицательное число, то оно определит длину создаваемого JavaScript массива:
[php]
var m = Array (150);
[/php]
В этом примере мы создали JavaScript массив длинною 150, то есть в этом массиве находится 150 элементов. При создании JavaScript массива, для их инициализации используются литералы массивов JavaScript. Литералы массивов JavaScript – это список значений в квадратных скобках. Значения массивов JavaScript разделяются между собой запятыми. У каждого значения в скобках есть индекс, индексация начинается с нуля. То есть, мы можем создать JavaScript массив, который вы уже видели таким образом:
[php]
var m = [“John”, 25, false];
[/php]
Мы создали и инициализировали JavaScript массив при помощи литерала массивов, каждое значение будет последовательно присваиваться проиндексированным элементам массива JavaScript. Давайте теперь создадим двумерный массив JavaScript (Array JavaScript), то есть мы создадим JavaScript массив из массивов и получим двумерный массив, их еще иначе называют матрицами:
[php]
var m = [[“a”,”b”,”c”], [1,2,3],[“раз”,”два”,”три”]];
[/php]
//
//
Типы данных, которые хранятся в JavaScript массиве ничем не ограничены, а так же не обязательно то, что элементы JavaScript массива должны быть константами – это могут быть переменные. Так же, никто не говорит о том, что JavaScript массив должен быть полностью определен или полностью не определен, JavaScript массивы могут быть смешанными:
[php]
var m = [“John”, , false];
[/php]
Теперь наш JavaScript массив содержит три элемента, два из которых определены и один не определен, то есть, чтобы создать неопределенный элемент JavaScript массива достаточно его не указывать, конечно, потом его можно будет определить. И понятно, что у неопределенного элемента JavaScript массива тип данных undefined JavaScript. Значения в JavaScript массиве можно изменять, а элементы JavaScript массива можно удалять и добавлять в любой момент времени. Так же JavaScript массивы не требуют непрерывной последовательности индексов, а чтобы узнать длину JavaScript массива есть свойство length. То есть, у JavaScript массива есть свойство length, в котором хранится его длина.
У JavaScript массивов множество методов, которые позволяют работать с данными, хранящимися в JavaScript массивах, о которых мы поговорим в следующих публикациях. Но, поскольку JavaScript массивы – это объекты JavaScript (немного модифицированные объекты для улучшения быстродействия), то многие методы, которые присущи для JavaScript массивов, присущи и для других объектных типов данных JavaScript.
Чуть было не забыл написать о том, как создать пустой массив JavaScript:
[php]
var m =[];
[/php]
Чтобы создать пустой JavaScript массив, достаточно ничего не указывать в квадратных скобках при его инициализации. На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru. Не забываем комментировать и делиться с друзьями;)
Здравствуйте! Спасибо, очень понятно и внятно написано без лишних слов! Скажите пожалуйста, хотелось бы уточнить. Вы написали, что массивы в JavaScript можно создавать при помощи функции-конструктора Array () JavaScript, при чем двумя способами. В первом случае мы создаем JavaScript массив присваивая переменной функцию-конструктор Array (), а затем каждому элементу JavaScript массива мы присваиваем какое-то значение, во втором случае мы передаем значения, которые хотим присвоить элементам JavaScript массива непосредственно функции-конструктору Array () JavaScript. Какой из этих способов создания JavaScript массива лучше? Или может создавать массив JavaScript лучше третьим способом при помощи литералов массива? Не судите строго я только учусь!
Здравствуйте Григорий! Не за что, стараемся! Начнем с конца. Я вас и не буду судить, всегда стараюсь помочь людям разобраться, все с чего-то начинают, хуже, когда люди не задают вопросов. А ваш вопрос подробный, ясный и четко сформулирован. Видите, дело все в том, что создание массивов JavaScript, точнее способы их создания не делятся на лучше-хуже. Все зависит от конкретной ситуации и от разработчика. Одним удобнее создавать JavaScript массивы при помощи функции-конструктора Array () другим при помощи литералов массивов JavaScript, третьим удобно передавать значения непосредственно функции Array () javascript. Но, как мне кажется, код программы должен быть ясным и понятным, поэтому стоит использовать способ наиболее удобный и понятный в каждой конкретной ситуации, существуют ситуации, когда удобно использовать Array () JavaScript и передавать ей значения, а существуют ситуации, когда удобнее вначале создать массив, а потом при помощи цикла for/in заполнять JavaScript массив. Надеюсь, что ответил на ваш вопрос.
Не люблю JavaScript за его типизацию, динамическая типизация — зло, даже каждый элмент массива может быть разного типа, еще и хрен пойми сколько аргументов функции нужно передать, какого типа эти аргументы должны быть, зачастую это из кода не понятно и приходится листать тонны документаций.