Выбор ответа Junior Функции высшего порядка спрашивают часто обновлено
Какая функция чистая
Вопрос
Какая из функций чистая?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: (list) = [...list, 1]. Чистая функция зависит только от аргументов и не имеет побочных эффектов. [...list, 1] создаёт новый массив и не трогает исходный, при одинаковом входе даёт одинаковый результат. push мутирует аргумент, это побочный эффект.
Варианты ответа
(list) => { list.push(1); return list; }(list) => [...list, 1]правильный ответ() => Date.now()(x) => { console.log(x); return x; }
Разбор
Чистая функция зависит только от аргументов и не имеет побочных эффектов. [...list, 1] создаёт новый массив и не трогает исходный, при одинаковом входе даёт одинаковый результат. push мутирует аргумент, это побочный эффект. Date.now() зависит от внешнего состояния (времени), результат каждый раз разный. console.log это вывод во внешний мир, тоже побочный эффект, хотя результат и детерминирован.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.