Skip to main content

Сайд-ефекти

Коротко: Side effect (побічний ефект) - це будь-яка дія функції, яка впливає на зовнішній стан або залежить від нього, окрім значення, що повертається.


Детальне пояснення

Побічний ефект - це будь-яка зміна поза самою функцією: зміна глобальних змінних, вивід у консоль, запит до сервера, зміна DOM, робота з файлами тощо.

Функції з побічними ефектами називають нечистими, тому що вони змінюють світ за межами себе і роблять поведінку програми менш передбачуваною.


Приклади побічних ефектів

ПрикладЩо робить
console.log('Hello')Змінює консоль (зовнішнє оточення)
alert('Hi!')Взаємодіє з користувачем
document.body.style.color = 'red'Змінює DOM
fetch('/api')Робить HTTP-запит
Math.random()Залежить від зовнішнього стану (генератор випадкових чисел)
Date.now()Залежить від поточного часу
Зміна глобальної змінноїЗмінює стан програми поза функцією

Приклад "з побічним ефектом"

javascript
let count = 0; function increment() { count++; // змінює зовнішню змінну }

Тут функція не лише рахує, а й змінює стан програми.


Приклад "без побічних ефектів"

javascript
function add(a, b) { return a + b; }

Ця функція працює лише зі своїми аргументами і нічого навколо не чіпає.


Чому це важливо

Код без побічних ефектів:

  • легше тестувати;
  • простіше передбачити результат;
  • безпечніше для паралельного виконання.

Але! Деякі побічні ефекти неминучі - інакше програма не взаємодіяла б із зовнішнім світом (UI, сервер, файл тощо). Головне - ізолювати й контролювати їх.


ПІДСУМОК

ОзнакаSide effect
Змінює зовнішні данітак
Залежить від зовнішнього станутак
Повертає різні результати за однакового вводуможливо
Прикладconsole.log, fetch, DOM-операції
Без побічних ефектівЧиста функція

В одній фразі:

"Side effect" - це будь-який зовнішній вплив функції (зміна або залежність від оточення), не пов'язаний напряму з її результатом, що повертається.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.