Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
👋 Привет! Я Дастан, автор Hack Frontend. Всегда рад профессиональному нетворкингу => добавляйся в LinkedIn.
arguments — это встроенный объект, доступный внутри функций, содержащий все переданные функции аргументы, независимо от того, были ли они явно задекларированы в сигнатуре.
Он существует только в обычных (не стрелочных) функциях и позволяет работать с переменным числом аргументов.
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
| Характеристика | Значение |
|---|---|
| Тип | object |
| Имеет length | да |
| Индексация | как у массива ([0], [1]) |
| Методы массива | нет (нужно преобразовать) |
| Только для function | стрелочные функции не имеют arguments |
Он похож на массив, потому что:
lengthНо:
Arraymap, forEach, filter и т.д.const args = Array.from(arguments);
// или
const args2 = [...arguments]; // сработает только в обычной функции
const foo = () => {
console.log(arguments); // ❌ ReferenceError
};
foo(1, 2, 3);
arguments в стрелочной функции не существует, потому что стрелочные функции не создают собственный контекст.
function sum(...args) {
return args.reduce((acc, curr) => acc + curr, 0);
}
Важно:
Объект arguments — устаревшая практика. В современных проектах используйте rest-параметры (...args).