JavaScript. Подробное руководство, 6-е издание, стр. 75
6.10.3. Метод toJSON()
В действительности
<b>Object.prototype</b><b>toJSON()</b><b>JS0N.stringify()</b><b>toJSON()</b><b>Date.toJSON()</b>6.10.4. Метод valueOf()
Метод
<b>valueOf()</b><b>toString(),</b><b>valueOf()</b><b>valueOf()</b><b>Date.valueOf()</b><b>valueOf()</b>7
Массивы
Массив - это упорядоченная коллекция значений. Значения в массиве называются элементами, и каждый элемент характеризуется числовой позицией в массиве, которая называется индексом. Массивы в языке JavaScript являются нети-пизированными: элементы массива могут иметь любой тип, причем разные элементы одного и того же массива могут иметь разные типы. Элементы массива могут даже быть объектами или другими массивами, что позволяет создавать сложные структуры данных, такие как массивы объектов и массивы массивов. Отсчет индексов массивов в языке JavaScript начинается с нуля и для них используются 32-битные целые числа: первый элемент массива имеет индекс 0, а наибольший возможный индекс имеет значение 4294967294 (232-2), т.е. максимально возможный размер массива составляет 4294967295 элементов. Массивы в JavaScript являются динамическими: они могут увеличиваться и уменьшаться в размерах по мере необходимости; нет необходимости объявлять фиксированные размеры массивов при их создании или повторно распределять память при изменении их размеров. Массивы в JavaScript могут быть разреженными: не требуется, чтобы массив содержал элементы с непрерывной последовательностью индексов - в массивах могут отсутствовать элементы с некоторыми индексами. Все массивы в JavaScript имеют свойство
<b>length</b><b>length</b>Массивы в языке JavaScript - это специализированная форма объектов, а индексы массивов означают чуть больше, чем просто имена свойств, которые по совпадению являются целыми числами. Мы еще не раз будем говорить о специфических особенностях массивов повсюду в этой главе. Реализации обычно оптимизируют операции с массивами, благодаря чему доступ к элементам массивов по их числовым индексам выполняется значительно быстрее, чем доступ к обычным свойствам объектов.
Массивы наследуют свои свойства от прототипа
<b>Array.prototype</b>7.1. Создание массивов
Легче всего создать массив с помощью литерала, который представляет собой простой список разделенных запятыми элементов массива в квадратных скобках. Например:
<b>var empty = []; // Пустой массив</b><b>var primes = [2, 3, 5, 7, 11]; // Массив с пятью числовыми элементами</b><b>var misc = [ 1.1, true, "а", ]; // 3 элемента разных типов + завершающая запятая</b>Значения в литерале массива не обязательно должны быть константами - это могут быть любые выражения:
<b>var base = 1024;</b><b>var table = [base, base+1, base+2, base+3];</b>Литералы массивов могут содержать литералы объектов или литералы других массивов:
<b>var b = [[1,{х:1, у:2}], [2, {х:3, у:4}]];</b>Если литерал массива содержит несколько идущих подряд запятых без значений между ними, создается разреженный массив (подробнее об этом рассказывается в разделе 7.3). Элементы, соответствующие таким пропущенным значениям, отсутствуют в массиве, но при обращении к ним возвращается значение
<b>undefined</b><b>var count = [1,,3]; // Элементы с индексами 0 и 2. count[1] => undefined </b><b>var undefs =[,,]; // Массив без элементов, но с длиной, равной 2</b>Синтаксис литералов массивов позволяет вставлять необязательную завершающую запятую, т.е. литерал [,,] соответствует массиву с двумя элементами, а не с тремя.
Другой способ создания массива состоит в вызове конструктора
<b>Аггау().</b>• Вызвать конструктор без аргументов:
<b>var а = new Array();</b>В этом случае будет создан пустой массив, эквивалентный литералу [].
• Вызвать конструктор с единственным числовым аргументом, определяющим длину массива:
<b>var а = new Array(10);</b>В этом случае будет создан пустой массив указанной длины. Такая форма вызова конструктора
<b>Array()</b>• Явно указать в вызове конструктора значения первых двух или более элементов массива или один нечисловой элемент: