高级前端js【Q591】什么是纯函数

什么是纯函数

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 607

Author 回答者: shfshanyue

  1. 输出仅由输入决定,每一个固定的输入总是返回相同的输出
  2. 不产生副作用
function push(list, x) {
  list.push(x);
  return list;
}
 
const l = [];
push(l, 3);

Author 回答者: Asarua

引用透明

Author 回答者: heretic-G

他只使用或者操作输入的参数 相同参数输出相同结果 不能存在语义化的副作用

Author 回答者: Vi-jay

  1. 输出仅由输入决定,每一个固定的输入总是返回相同的输出
  2. 不产生副作用
function push(list, x) {
  list.push(x);
  return list;
}
 
const l = [];
push(l, 3);

这应该是一个错误的例子吧 这个函数改变了list本身 纯函数应该是不改变外部数据的