Sobes.tech
Middle

Какво е чиста функция? Дали console.log вътре във функция е страничен ефект?

sobes.tech AI

Отговор от AI

Чистата функция е функция, която при еднакви входни данни винаги връща еднакъв резултат и не предизвиква никакви странични ефекти (side-effects).

Страничните ефекти са всякакви действия на функцията, които надхвърлят изчисляването на стойността, например:

  • промяна на външни променливи или състояния,
  • извършване на входно-изходни операции (например запис в конзолата, работа с файлове, мрежа),
  • промяна на аргументите на функцията.

console.log вътре във функцията е страничен ефект, тъй като той извежда данни в конзолата, което влияе на външния свят и не е свързано директно с връщаната стойност.

Пример за чиста функция:

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

Пример за функция с страничен ефект:

function logSum(a, b) {
  const sum = a + b;
  console.log(sum); // страничен ефект
  return sum;
}

Така console.log вътре във функцията я прави нечиста.