Проверяет понимание чистых функций и влияния условных операторов на их чистоту.
Чистая функция — это функция, которая удовлетворяет двум основным условиям: она всегда возвращает одинаковый результат для одинаковых входных данных (детерминизм) и не вызывает побочных эффектов (не изменяет внешнее состояние, не выполняет ввод-вывод, не мутирует аргументы).
Условный оператор if — это просто управляющая конструкция, которая выбирает одну из ветвей выполнения. Он не влияет на чистоту функции сам по себе. Важно, что происходит внутри каждой ветви. Если все ветви возвращают значения, вычисленные только на основе аргументов, и не изменяют внешние переменные, функция остаётся чистой.
// Чистая функция с if
function max(a, b) {
if (a > b) {
return a;
} else {
return b;
}
}
// Нечистая функция с if (побочный эффект)
let counter = 0;
function incrementIfPositive(x) {
if (x > 0) {
counter++; // изменяет внешнее состояние
}
return x;
}Чистые функции широко используются в функциональном программировании, тестировании (легко предсказать результат), параллельных вычислениях (без гонок данных) и в библиотеках управления состоянием, таких как Redux, где редьюсеры должны быть чистыми.
Условный оператор не делает функцию нечистой. Ключевое — отсутствие побочных эффектов и детерминизм. Используйте чистые функции для повышения надёжности и тестируемости кода.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию