Sobes.tech
Junior

Функсияи тоза чист?

sobes.tech AI

Ҷавоб аз AI

Функсияи тоза — ин функсияест, ки ду шарти зеринро қонеъ мекунад:

  1. Детерминизм: Вақте ки бо аргументҳои якхела даъват мешавад, ҳамеша натиҷаи якхела медиҳад.
  2. Бе таъсири тараф: Вай ҳолати берунӣ ё маълумотҳои берун аз доираи худро тағир намедиҳад (масалан, тағир додани тағйирёбандаҳои глобалӣ, навиштани маълумот ба файл, иҷрои дархостҳои шабакавӣ).

Масалан функсияи тоза:

// Функсияи тоза: ҳамеша ҷамъи ду рақамро бармегардонад, бе тағир додани тағйирёбандаҳои берунӣ.
function add(a, b) {
  return a + b;
}

Масалан функсияи нозо (бо таъсири тараф):

// Функсияи нозо: тағир медиҳад тағйирёбандаи берунӣ, ки counter аст.
let counter = 0;

function incrementCounter() {
  counter++;
  return counter;
}

Масалан функсияи нозо (беҳузур, номуайян):

// Функсияи нозо: натиҷа аз вақти ҳозира вобаста аст.
function getCurrentTime() {
  return new Date().getTime();
}