纯函数

@Function
1. 确定性
.相同的输入始终得到相同的输出
.大多数的操作都是以数组为对象,所以后续各例都以数组为例
.如果一个函数的执行会修改到数组,则这个函数不是纯函数
.如果一个函数没有参数,那它就不是纯函数
2. 无副作用
.不会修改外部环境,如全局变量
slice(start, end)
返回一个拷贝,从start开始到end结束,不包括end
它是纯函数
splice(start, count)
移除元素,从start开始的count个
会修改原数组,它不是纯函数
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(arr.slice(1, 3));
console.log(arr.slice(1, 3));
console.log(arr.slice(1, 3));
console.log(arr.splice(1, 3));
console.log(arr.splice(1, 3));
console.log(arr.splice(1, 3));
revers()
同时它也会修改原数组,它不是纯函数
sort()
排序函数,不是纯函数
优点
.可缓存:执行过一次后,就可以把结果留用;下次再使用的时候,直接使用结果,不需要每次都执行