Devs Hive
Повернутися до всіх запитань

Що таке чиста функція?

JavaScriptJunior
Зустрічали на інтервʼю:0 користувачів

Чиста функція - це функція, яка при однакових вхідних даних, завжди повертає однаковий результат і не має побічних ефектів. Визначення може плутати тому по розберемо приклади цих характеристик:

Однаковий результат при однакових аргуметах

// Ця функція чиста, так як працює тільки з своїми аргументами
// і викликавши її в будь якому місці нашого додатку,
// результат виконання не зміниться,
// так як функція не залежить від зовнішніх умов
const applyDiscount = (price, discountPercent) => {
return price - (price * discountPercent) / 100
}
// ----------------------------------------------------------------

// В цьому прикладі функція залежить від DISCOUNT_PERCENT
// і якщо його значення зміниться, результат виконання буде інший
// тому така функція не може вважатись чистою
const DISCOUNT_PERCENT = 20;

const applyDiscount = (price) => {
return price - (price * DISCOUNT_PERCENT) / 100
}

Відсутність побічних ефектів (Side Effects)

Функція не має побічних ефектів, якщо вона не змінює зовнішні змінні, обʼєкти, файли, DOM, БД, мережеві ресурси.

// Ця функція НЕ чиста, так як вона взаємодіє з API і залежить від нього.
const fetchUser = async (id) => {
const response = await fetch(`https://api.example.com/users/${id}`);
return response.json();
};

Для того, щоб зробити вашу відповідь більш професіональною ви можете додати, що ця техніка широко використовується в програмуванні як на бекенді так і на фронтенді. Хорошим тоном буде привести 1 - 2 приклади з фреймворка яким ви користуєтесь, наприклад React.js, Nest.js, Angular, etc. Також, варто згадати, що використання цієї концепції спрощує написання Unit i Integration тестів.

Зустрічав на інтервʼю?

Коментарі (0)

Увійдіть, щоб залишити коментар

Поки що немає коментарів. Будьте першим!