欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js 纯函数

程序员文章站 2024-02-08 10:34:10
...

纯函数的概念

纯函数就是相同的输入会有相同的输出结果;而且没有任何可观察的副作用。

纯函数例子

let arr = [1, 2, 3, 4, 5, 6, 7]
console.log(arr.slice(0, 3))
console.log(arr.slice(0, 3))
console.log(arr.slice(0, 3))
function getSum(n1, n2) {
  return n1 + n2
}
console.log(getSum(1, 2))
console.log(getSum(1, 2))
console.log(getSum(1, 2))

不纯的函数例如:

let arr = [1, 2, 3, 4, 5, 6, 7]
console.log(arr.splice(0, 3))
console.log(arr.splice(0, 3))
console.log(arr.splice(0, 3))
console.log(arr.splice(0, 3))

lodash中提供了很多纯函数的用法:

第一步安装lodash,$ npm i -g npm $ npm i --save lodash
第二部导入lodash const _ = require(‘lodash’)
lodash中提供了方法:例如_.first() _.last() _.toUpper() _.reverse() _.memoize()

使用纯函数的好处:

1、可缓存(因为纯函数对相同的输入始终有相同的结果;所以可以把纯函数的结果缓存起来) memoize函数会把结果缓存起来。

  const _ = require("lodash")
  // 求圆面积
  function getArea(r) {
    console.log(r)
    return Math.PI * r * r
  }```
  let getAreaWithMemory = _.memoize(getArea)
  console.log(getAreaWithMemory(4))
  console.log(getAreaWithMemory(4))
  console.log(getAreaWithMemory(4))

2、可测试

3、并行处理

纯函数的副作用:

纯函数的副作用:会让一个函数变得不纯;例如

let min = 16
function checkAge(age) {
  return age >= min
}```

上一篇: js 纯函数

下一篇: JQuery基础