1.纯函数:
纯函数定义:输入相同,输出相同;
副作用:让纯函数变的不纯
2.有 slice / splice 进行测试
let array = [1,2,3,4]
// slice / splice
// 纯函数
console.log(array.slice(0,3)); // [1,2,3]
console.log(array.slice(0,3)); // [1,2,3]
console.log(array.slice(0,3)); // [1,2,3]
console.log(array); // [1,2,3,4]
// 不纯函数
console.log("----");
console.log(array.splice(0,3)); // [1,2,3]
console.log(array.splice(0,3)); // [4]
console.log(array.splice(0,3)); // []
console.log(array); // []
上面的案例可以看出 slice 输出相同的类型, 属于 纯函数
splice 已经改变原型 属于 不纯函数
再看看下面的案例,
function sum(a,b){
return a+b;
}
console.log(sum(1,2)); //3
console.log(sum(1,2)); //3
console.log(sum(1,2)); //3
副作用:副作用不可能完成禁止,尽可能控制他们在可控范围内发生
// 纯函数:相同输入,相同输出
// 副作用: 让纯函数变的不纯
// 案例
function getAge(a){
let age =18
return a>=age
}