纯函数是一类特别的函数: 只要是同样的输入(实参),必定得到同样的输出(返回)
纯函数的特点:
- 它没有改变原来参数的值
- 它没有修改外部的变量和数据
- 每次调用时传递相同的值,返回的结果永远一样
必须遵守以下一些约束
- 不得改写参数数据
- 不能调用Date.now()或者Math.random()等不纯的方法
- 不适用于网络请求等操作
例如:
- 这是一个纯函数,每次输入相同的参数,都返回一个相同的新数组,不会改变外部变量的值
let array = [1, 2, 3];
function demo(array, item) {
return [...array, item];
}
demo(array, 4);
- 这不是一个纯函数,因为会改变外部变量的值
let array = [1, 2, 3];
function demo(array, item) {
return array.push(item);
}
demo(array, 4);