6. 纯函数
leezozz 1/8/2023 js
# 纯函数
- 函数式编程中的函数指的就是纯函数
- 纯函数概念:(有参数、返回值)相同的输入永远都是相同的输出,而且没有任何可观察的副作用
- 纯函数类似数学中的函数(用来描述输入和输出之间的关系) y = f(x)
- lodash是一个纯函数的功能库,提供了对数组、数字、对象、字符串等操作的一些方法
- 数组的slice 和 splice分别是:纯函数、不纯的函数
- slice返回数组中的指定部分,不会改变原数组
- splice对数组进行操作返回该数组,会改变原数组
# slice 纯函数
const arr = [1, 2, 3, 4, 5]
console.log(arr.slice(0, 3))
console.log(arr.slice(0, 3))
console.log(arr.slice(0, 3))
1
2
3
4
2
3
4
# splice 不纯的函数
console.log(arr.splice(0, 3))
console.log(arr.splice(0, 3))
console.log(arr.splice(0, 3))
1
2
3
2
3
# 纯函数
function getSum(n1, n2) {
return n1 + n2
}
console.log(getSum(1, 2))
console.log(getSum(1, 2))
console.log(getSum(1, 2))
1
2
3
4
5
6
2
3
4
5
6
函数式编程不会保留计算中间的结果,所以变量是不可变的(无状态的)
我们可以把一个函数的执行结果交给另一个函数去处理