Чистые функции VS. Нечистые функции в JavaScript

Чистые функции всегда возвращают один и тот же результат, если одни и те же аргументы передаются. Он не зависит от какого-либо состояния или данных, которые изменяются во время выполнения программы. Он должен зависеть только от входных аргументов. У них нет побочных эффектов, таких как вызовы сети или базы данных, и они не изменяют аргументы, которые им передаются.

Пример

 
function getSquare(x) {
   return x * x;
}

Нечистые функции

Любая функция, которая изменяет внутреннее состояние одного из своих аргументов или значение некоторой внешней переменной, является нечистой функцией. Они могут иметь любые побочные эффекты, такие как вызовы сети или базы данных, и могут изменять аргументы, которые передаются им.

Пример

 
function getSquare(items) {
  var len = items.length;
  for (var i = 0; i < len; i++) {
    items[i] = items[i] * items[i];
  }
  return items;
}

Math.random() - нечистая функция; он изменяет внутреннее состояние объекта Math, поэтому вы получаете разные значения при последовательных вызовах.

Источник: http://net-informations.com/js/iq/pure.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector