Array
BaselineWidely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
ОбъектArray
, как и массивы в других языках программирования, позволяетхранить коллекцию из нескольких элементов под одним именем переменной и имеет методы для выполнения общих операций с массивами.
Описание
Массивы являются спископодобными объектами, чьи прототипы содержат методы для операций обхода и изменения массива. Ни размер JavaScript-массива, ни типы его элементов не являются фиксированными. Поскольку размер массива может увеличиваться и уменьшаться в любое время, то нет гарантии, что массив окажется плотным. То есть, при работе с массивом может возникнуть ситуация, что элемент массива, к которому вы обратитесь, будет пустым и вернётundefined
. В целом, это удобная характеристика; но если эта особенность массива не желательна в вашем специфическом случае, вы можете рассмотреть возможность использования типизированных массивов.
Некоторые полагают, чтовы не должны использовать массив в качестве ассоциативного массива. В любом случае, вместо него вы можете использовать простыеобъекты
, хотя у них есть и свои подводные камни. Смотрите постЛегковесные JavaScript-словари с произвольными ключами(англ.) в качестве примера.
Доступ к элементам массива
Массивы в JavaScript индексируются с нуля: первый элемент массива имеет индекс, равный0
, а индекс последнего элемента равен значению свойства массиваlength
минус 1.
const arr = ["первый элемент", "второй элемент", "последний элемент"];console.log(arr[0]); // напечатает 'первый элемент'console.log(arr[1]); // напечатает 'второй элемент'console.log(arr[arr.length - 1]); // напечатает 'последний элемент'
Элементы массива являются свойствами, точно такими же, как, например, свойствоtoString
, однако попытка получить элемент массива по имени его свойства приведёт к синтаксической ошибке, поскольку имя свойства не является допустимым именем #"2"] != years["02"]);
Аналогично, к свойствам объекта, являющимся зарезервированными словами(!) можно получить доступ только посредством скобочной нотации:
const promise = { var: "text", array: [1, 2, 3, 4],};console.log(promise["array"]);