纯函数-Javascript
什么是纯函数?
纯函数,一个通常出现在函数式编程中的概念
纯函数特点:
1. 纯函数结果只依赖于参数,与函数外部变量无关。
2. 纯函数不会产生任何可观察的副作用
例子:
function sum (b, c) { return b + c; } // 不影响外部的变量也与外部的变量无关! // 不是纯函数 let a = 10; // 影响了外部的变量 function sum(b){ return a + b; } console.log(sum(1));// 11
不能引起副作用,包括:
- 不能发起HTTP请求
- 不能操作DOM
- 不能修改外部数据
- 不能console.log()打印数据
- 不能调用Date.now()或者Math.random()
纯函数的优点:
1. 有利于程序测试;
纯函数结果只依赖于参数,测试时可以确保输出稳定。
2.减少模块耦合;
不用担心纯函数会影响其他函数或变量,方便替换和重构。
引用场景:
- 工具函数最好使用纯函数
- 多平台使用的代码(nodejs、浏览器、微信小程序、native客户端等)
- 相对独立的功能