JavaScript. Подробное руководство, 6-е издание, стр. 406

<b>var factorial = function(x) {</b>

<b>  if (x &lt; 2) return 1; else return x * arguments.callee(x1);</b>

<b>}</b>

<b>var у = factorial(5); // Вернет 120</b>

Arguments.length

число аргументов, переданных функции

Синтаксис

arguments.length

Описание

Свойство

<b>length</b>
объекта
<b>Arguments</b>
возвращает количество аргументов, переданных текущей функции. Это свойство определено только внутри тела функции.

Обратите внимание: это свойство возвращает фактическое количество переданных аргументов, а не ожидаемое. О количестве аргументов в объявлении функции говорится в справочной статье

<b>Function.length</b>
. Кроме того, следует отметить, что это свойство не обладает особым поведением, как свойство
<b>Array.length</b>
.

Пример

<b>// Использовать объект Arguments, чтобы проверить, верное ли количество </b>

<b>// аргументов было передано</b>

<b>function check(args) {</b>

<b>  var actual = args.length; // Фактическое количество аргументов</b>

<b>  var expected = args.callee.length; // Ожидаемое количество аргументов</b>

<b>  if (actual != expected) { // Если не совпадают, сгенерировать исключение</b>

<b>    throw new Error(&quot;Неверное число аргументов: ожидается: &quot; +</b>

<b>               expected + ”; фактически передано &quot; + actual);</b>

<b>  }</b>

<b>}</b>

<b>// Функция, демонстрирующая использование функции, приведенной выше</b>

<b>function f(x, у, z) {</b>

<b>  check(arguments); // Проверить правильность количества аргументов</b>

<b>  return х + у + z; // Выполнить оставшуюся часть функции обычным образом</b>

См. также

Array.length, Function.length

Array

Array

встроенная поддержка массивов (Object->Array)

Конструктор

<b>new Array()</b>

<b>new Array(размер)</b>

<b>new Array(элементе, элемент1..... элемент)</b>

Аргументы

размер - Желаемое количество элементов в массиве. Длина возвращаемого массива (

<b>length</b>
) равна аргументу размер.

элемент0, ... элементN - Список аргументов из двух и более произвольных значений. Когда конструктор А г ray () вызывается с этими аргументами, элементы только что созданного массива инициализируются указанными значениями, а свойство length становится равным количеству аргументов.

Возвращаемое значение

Вновь созданный и инициализированный массив. Когда конструктор

<b>Array()</b>
вызывается без аргументов, он возвращает пустой массив, свойство
<b>length</b>
которого равно 0.

При вызове с одним числовым аргументом конструктор возвращает массив с указанным количеством неопределенных элементов. При вызове с любыми другими аргументами конструктор инициализирует массив значениями аргументов. Когда конструктор

<b>Аrray()</b>
вызывается как функция (без оператора
<b>new</b>
), он ведет себя точно так-же, как при вызове с оператором
<b>new</b>
.

Исключения

<b>RangeErгог</b>
Когда конструктору
<b>Аггау()</b>
передается один целый аргумент размер, генерируется исключение
<b>RangeErгог</b>
, если размер отрицателен или превышает 232-1.

Синтаксис литерала

ECMAScript v3 определяет синтаксис литералов для массивов. Программист может создавать и инициализировать массив, заключая список выражений, перечисленных через запятые, в квадратные скобки. Значения этих выражений становятся элементами массива. Например:

<b>var а = [1, true, 'abc‘];</b>

<b>var b = [а[0], а[0]*2, f(x)];</b>

Свойства

<b>length</b>
Целое, доступное для чтения и записи, определяет количество элементов массива или, если элементы массива расположены не непрерывно, число, на единицу большее индекса последнего элемента массива. Изменение этого свойства укорачивает или расширяет массив.

Методы

Методы

<b>every(), filter(), forEach(), indexOf (), lastlndexOf(), map(), reduce(), reduceRight()</b>
и
<b>some()</b>
впервые появились в ECMAScript 5, но были реализованы всеми броузерами, кроме IE, до утверждения стандарта ES5.

<b>соnсat()</b>
Присоединяет элементы к массиву.

<b>every()</b>
Проверяет, возвращает ли предикат значение true для каждого элемента массива.

<b>filter()</b>
Возвращает массив элементов, удовлетворяющих требованиям функции-предиката.

<b>forEach()</b>
Вызывает функцию для каждого элемента массива.

<b>indexOf()</b>
Выполняет поиск элемента в массиве.

<b>join()</b>
Преобразует все элементы массива в строки и выполняет их конкатенацию.

<b>lastIndexOf()</b>
Выполняет поиск в массиве в обратном порядке.

<b>mар()</b>
Вычисляет элементы нового массива из элементов данного массива,

<b>рор()</b>
Удаляет элемент из конца массива,

<b>рush()</b>
Помещает элемент в конец массива.