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

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

Denis Putnov

Самописные

const SALT = 5
const VALUE = 2

// не чистая, т.к. есть зависимость от переменных извне
async function hashPassword(password) {
  const hashedPassword = await bcript.hash(password, SALT)
  return hashedPassword
}

// не чистая, т.к. есть зависимость от переменных извне
function addValue(x) {
  return x + VALUE
}

// не чистая, т.к. есть побочный эффект (console.log, alert и тд)
function sayHi(name) {
  console.log(`Hello, ${name}`)
}

// не чистая, т.к. результат зависит от другой нечистой функции
// ( Math.random )и возвращаемое функцией значение непредсказуемо
function dice() {
  Math.floor(Math.random() * 6) + 1
}

Примеры из самого языка

Date.now()
Math.random()

Report Page