function foo(a) {

Функция выведет 3. arguments.length показывает число фактически переданных аргументов, а не количество объявленных параметров.

Короткий ответ

Что ответить на собеседовании

Функция выведет 3. arguments.length показывает число фактически переданных аргументов, а не количество объявленных параметров.

Подробный разбор

Ответ с пояснениями

Условие

function foo(a) { console.log(arguments.length); } foo(1, 2, 3);

Ответ

Функция выведет 3. arguments.length показывает число фактически переданных аргументов, а не количество объявленных параметров.

У foo объявлен один параметр a, который получит 1, но вызов передаёт три значения: 1, 2 и 3. В обычной функции они доступны через arguments, поэтому его length равен 3.

Свойство foo.length в этом примере равно 1: оно относится к формальным параметрам функции. У стрелочных функций собственного arguments нет; для получения всех аргументов там используют rest-параметр, например (...args) => args.length.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее