Выбор ответа Middle Функции высшего порядка обновлено
Значение по умолчанию вычисляется на каждый вызов
Вопрос
Что выведет код?
function add(item, list = []) {
list.push(item);
return list;
}
console.log(add(1).length, add(2).length);
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 1 1. Выражение по умолчанию в JavaScript вычисляется заново при каждом вызове, когда аргумент undefined.
Варианты ответа
1 1правильный ответ1 22 2- TypeError
Разбор
Выражение по умолчанию в JavaScript вычисляется заново при каждом вызове, когда аргумент undefined. Каждый вызов получает новый пустой массив, поэтому оба раза длина 1. Ответ 1 2 пришёл из Python, где значение по умолчанию создаётся один раз при определении функции. Ошибки нет: push у нового массива работает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.