Що таке псевдомасив arguments у JavaScript
arguments — це вбудований об'єкт, доступний всередині функцій, який містить всі аргументи, передані функції, незалежно від того, чи були вони явно оголошені в сигнатурі.
Він існує тільки в звичайних (не стрілкових) функціях і дозволяє працювати з змінною кількістю аргументів.
Приклад використання
javascript
function sum() {
console.log(arguments); // Псевдомасив
let total = 0;
for (let i = 0; i < arguments.length; i++) {
total += arguments[i];
}
return total;
}
console.log(sum(1, 2, 3)); // 6Особливості об'єкта arguments
| Характеристика | Значення |
|---|---|
| Тип | object |
| Має довжину | так |
| Індексація | як масив ([0], [1]) |
| Методи масиву | ні (потрібна конверсія) |
| Тільки для функцій | стрілкові функції не мають arguments |
Чому це псевдомасив?
Він подібний до масиву, тому що:
- має індекси
- має
length
Але:
- це не справжній
Array - не має методів
map,forEach,filterтощо.
Конвертація в масив
javascript
const args = Array.from(arguments);
// або
const args2 = [...arguments]; // працює тільки в звичайній функціїУ стрілкових функціях
javascript
const foo = () => {
console.log(arguments); // ❌ ReferenceError
};
foo(1, 2, 3);arguments не існує в стрілкових функціях, оскільки стрілкові функції не створюють свій власний контекст.
Сучасна альтернатива — Параметри решти
javascript
function sum(...args) {
return args.reduce((acc, curr) => acc + curr, 0);
}Важливо:
Об'єкт arguments є застарілою практикою. У сучасних проектах використовуйте параметри решти (...args).
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.