什么是纯函数?

什么是纯函数?纯函数的概念 一个函数的返回结果只依赖其参数 并且执行过程中没有副作用 下面我们来分别说明一下概念中的两个条件 返回结果只依赖其参数返回值只和函数参数有关 与外部无关 无论外部发生什么样的变化 函数的返回值都不会改变 非纯函数返回值与 a 相关 无法预料 consta 1constfoo b gt a bfoo 2

纯函数的概念:一个函数的返回结果只依赖其参数,并且执行过程中没有副作用。

下面我们来分别说明一下概念中的两个条件。

返回结果只依赖其参数

返回值只和函数参数有关,与外部无关。无论外部发生什么样的变化,函数的返回值都不会改变。

// 非纯函数 返回值与a相关,无法预料 const a = 1 const foo = (b) => a + b foo(2) // => 3 // 纯函数 返回结果只依赖于它的参数 x 和 b,foo(1, 2) 永远是 3。今天是 3,明天也是 3,在服务器跑是 3,在客户端跑也 3,不管你外部发生了什么变化,foo(1, 2) 永远是 3。只要 foo 代码不改变,你传入的参数是确定的,那么 foo(1, 2) 的值永远是可预料的。 const a = 1 const foo = (x, b) => x + b foo(1, 2) // => 3 

函数执行过程中没有副作用

 // 无副作用 const a = 1 const foo = (obj, b) => { return obj.x + b } const counter = { x: 1 } foo(counter, 2) // => 3 counter.x // => 1 // 修改一下 ,再观察(修改了外部变量,产生了副作用。) const a = 1 const foo = (obj, b) => { obj.x = 2; return obj.x + b } const counter = { x: 1 } foo(counter, 2) // => 4 counter.x // => 2 

当然,如果实在函数内部创建的变量。进行修改则不会产生副作用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229331.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:56
下一篇 2026年3月16日 下午4:56


相关推荐

  • Mac怎么读写NTFS格式?「建议收藏」

    Mac怎么读写NTFS格式?「建议收藏」Mac怎么读写NTFS格式?打开应用程序-实用工具-终端运行如下命令。来查看你的硬盘UUID。diskutilinfo/Volumes/UNTITLED2|grepUUID特别注意:用你的硬盘的名字替换掉UNTITLED2需要用到的就是硬盘的UUID识别号再运行如下命令:echo”UUID=130ED022-B7BB-4535-B84E-23011610A2ABnonentfsrw,auto,nobrowse”|sudotee-a/etc/fst

    2022年6月16日
    33
  • 什么是SSL数字证书

    什么是SSL数字证书什么是 SSL 数字证书 SSL 数字证书是 CA 机构颁发给域名或者 IP 地址的数字证书 为客户端与服务器端建立 SSL 加密通道 二 SSL 证书如何工作 基本原则是 当您在服务器上安装 SSL 证书 并且浏览器连接到该证书时 SSL 证书的存在会触发 SSL 或 TLS 协议 该协议将加密服务器和浏览器 或服务器之间 之间发送的信息 详细信息显然要复杂一些 SSL 直接在传输控制协议 TCP 之上运行 有效地起到了一个安全保护层的作用 它允许更高的协议层保持不变 同时仍然提供安全连接 因此 在 SSL 层下面 其他协议层能

    2026年3月19日
    2
  • 【STM32】UART和USART的区别[通俗易懂]

    【STM32】UART和USART的区别[通俗易懂]1、UART:universalasynchronousreceiverandtransmitter通用异步收发器;2、USART:universalsynchronousasynchronousreceiverandtransmitter通用同步异步收发器。1、通用异步收发器:通用异步收发器是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传…

    2022年5月19日
    42
  • 放松解压电影_最新电影下载

    放松解压电影_最新电影下载经典高清电影合集170GBT种子下载点击文件名下载经典高清电影合集170GBT种子.torrent下载方法经典高清电影合集详情见目录:1.杀手472.这个杀手不太冷3.放牛班的春天

    2022年8月4日
    13
  • python3·7创建虚拟环境_python激活虚拟环境

    python3·7创建虚拟环境_python激活虚拟环境Centos7安装Python3,创建python3虚拟环境

    2025年11月12日
    4
  • 三阶魔方还原简单七步公式

    三阶魔方还原简单七步公式第一步 底层十字还原第二步 底角归位 RUR U 第三步 中层棱块归位在顶层找到一个不带黄色的棱块情况 1 右中上面棱块颜色与前面中心块颜色一致 R U R U R URUR 五逆四顺 情况 2 右中上面棱块颜色与前面中心块颜色不一致 RURURU R U R 五顺四逆 情况 3 当中层出现棱块需要调整 将棱块放于前层右棱块位置 执行 R U R U R URUR 五逆四顺 再按情况 1 和情况 2

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号