JavaScript Function.length — кількість параметрів функції


Властивість length повертає кількість оголошених параметрів функції.

автор: NagarD

Загальний опис

І тут двічі можна помилитись.

Перше: рахуються лише параметри до першого зі значенням за замовчуванням. У function f(a, b = 1, c) властивість дасть 1, а не 3.

Друге: ...rest не рахується взагалі. У function f(a, ...rest) буде 1.

Це не баг, а визначення: length показує кількість обов'язкових параметрів. На цьому, наприклад, побудовані бібліотеки каррінгу — вони по ньому розуміють, скільки аргументів ще чекати.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
length 1+ 1+ 1+ 3+ 12+ 9+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
length yes yes yes yes

Приклади

+ запропонувати свій приклад у пісочниці

Що саме рахується — і що ні.

function a(x, y) {}
function b(x, y = 1, z) {}
function c(x, ...rest) {}

console.log(a.length); // 2
console.log(b.length); // 1 — лише ДО значення за замовчуванням
console.log(c.length); // 1 — ...rest не рахується

// не плутати з arguments.length — це фактично передані
function show(x, y) {
    console.log(show.length, arguments.length);
}

show(1, 2, 3); // 2 3
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід