JavaScript. Подробное руководство, 6-е издание, стр. 77
<b>О in а1 // => false: а1 не имеет элемента с индексом О</b><b>О in а2 // => true: а2 имеет элемент с индексом 0 и со значением undefined</b>Некоторые старые реализации (такие как Firefox 3) некорректно вставляли элементы со значением
<b>undefined</b><b>[1,,3]</b><b>[1, undefined,3].</b>7.4. Длина массива
Любой массив имеет свойство
<b>length</b><b>length</b><b>[].length // => 0: массив не имеет элементов</b><b>['а','Ь','с'].length // => 3: наибольший индекс равен 2, длина равна 3</b>Для разреженных массивов значение свойства length больше числа элементов, и все, что можно сказать в этом случае, - это то, что значение свойства
<b>length</b><b>length массива</b><b>і</b><b>length</b><b>length</b><b>i+1</b>Вторая особенность в поведении, обеспечивающем работу свойства
<b>length</b><b>length</b><b>а = [1,2,3,4,5]; // Создать массив с пятью элементами.</b><b>a.length =3; // теперь массив а содержит элементы [1,2,3].</b><b>a.length = 0; // Удалит все элементы, а - пустой массив [].</b><b>a.length = 5; // Длина равна 5, но элементы отсутствуют, подобно Аггау(5)</b>В свойство
<b>length</b>В ECMAScript 5 свойство
<b>length</b><b>Object.defineProperty()</b><b>а = [1,2,3]; // Создать массив а с тремя элементами.</b><b>Object.defineProperty(a, ‘length", // Сделать свойство length</b><b> {writable: false}); // доступным только для чтения, </b><b>a.length =0; //а не изменится.</b>Аналогично, если сделать элемент массива ненастраиваемым, его нельзя будет удалить. Если элемент нельзя будет удалить, то и свойство
<b>length</b><b>Object.seal()</b><b>Object.freeze()</b>7.5. Добавление и удаление элементов массива
Мы уже видели, что самый простой способ добавить элементы в массив заключается в том, чтобы присвоить значения новым индексам:
<b>а = [] // Создать пустой массив.</b><b>а[0] = "zero"; // И добавить элементы.</b><b>а[1] = "one";</b>Для добавления одного или более элементов в конец массива можно также использовать метод
<b>push():</b><b>а = []; // Создать пустой массив</b><b>a.push("zero") // Добавить значение в конец, а = ["zero"]</b><b>a.push("one", "two") // Добавить еще два значения, </b><b>а = ["zero", "one", "two"]</b>Добавить элемент в конец массива можно также, присвоив значение элементу
<b>а[а.length]</b><b>unshift()</b>Удалять элементы массива можно с помощью оператора
<b>delete</b><b>а = [1.2.3];</b><b>delete а[1]; // теперь в массиве а отсутствует элемент с индексом 1</b><b>1 in а // => false: индекс 1 в массиве не определен</b><b>a.length // => 3: оператор delete не изменяет свойство length массива</b>Удаление элемента напоминает (но несколько отличается) присваивание значения
<b>undefined</b><b>delete</b><b>length</b>