JavaScript纯函数

2020-12-29

纯函数是指不依赖于且不改变它作用域之外的变量状态的函数。纯函数的返回值只由它调用时的参数决定,它的执行不依赖于系统的状态(执行上下文)。相同的输入参数,一定会得到相同的输出,也就是内部不含有会影响输出的随机变量。不属于纯函数的特点:

更改文件系统

往数据库插入记录

发送一个 http 请求

可变数据

打印/log

获取用户输入

DOM 查询

访问系统状态

纯函数的作用:

可靠性:函数返回永远和预期一致

可缓存性:因为只要输入一样输出一定一样,因此可将输入作为 key,输出作为值,使用对象缓存已经计算的结果

可移植性:因为没有外部依赖,所以移植到任何环境都可正确运行

可测试性:方便针对函数做单元测试

可并行性:对一些复杂计算,可以并行计算(例如使用 nodejs 多个子进程同时并行计算多个任务,提高计算速度)

应用场景:

工具函数最好使用纯函数

多平台使用的代码(nodejs、浏览器、微信小程序、native 客户端等)

相对独立的功能

var a = 1;
// 非纯函数
function sum(b) {
    return a + b;
}
// 非纯函数
function sum(b) {
    a = 2;
    return b;
}
// 非纯函数
function sum(b) {
    return b + Math.random();
}


// 纯函数
function sum (b, c) {
    return b + c;
}

留言回复
我们只提供高质量资源,素材,源码,坚持 下了就能用 原则,让客户花了钱觉得值
上班时间 : 周一至周五9:00-17:30 期待您的加入