首页 > web前端 > js教程 > 正文

JavaScript中什么是函数式编程_纯函数概念

紅蓮之龍
发布: 2025-12-15 22:34:02
原创
235人浏览过
纯函数是函数式编程的地基,要求相同输入必得相同输出且无副作用。它提升可测试性、可缓存性、并发安全性,并支持引用透明。

javascript中什么是函数式编程_纯函数概念

JavaScript 中的函数式编程,不是指用 JavaScript 写 Haskell,而是用一套可预测、易组合、少出错的思维方式来组织函数逻辑。其中最基础、最关键的概念就是纯函数

纯函数的两个硬性条件

一个函数要被称为纯函数,必须同时满足:

  • 相同输入,永远返回相同输出——不依赖任何外部变量、全局状态、时间、随机数、DOM 节点等;
  • 执行过程没有副作用——不修改传入的参数、不改变全局变量、不调用 console.log / alert / fetch / DOM 操作等可观察的外部行为。

纯函数长什么样

✅ 正确示例:

const add = (a, b) => a + b;
const square = x => x * x;
const isValidEmail = email => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
登录后复制

这些函数只看参数,只算结果,不碰外面一寸土地。

立即学习Java免费学习笔记(深入)”;

Mureka
Mureka

Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。

Mureka 1091
查看详情 Mureka

哪些看起来像纯函数,其实不是

❌ 常见反例:

  • let taxRate = 0.1; const calcTax = price => price * taxRate; → 依赖外部变量,taxRate 变了结果就变;
  • const pushItem = (arr, item) => { arr.push(item); return arr; }; → 修改了原数组,破坏了输入;
  • const logAndDouble = x => { console.log(x); return x * 2; }; → 控制台输出是可观察副作用;
  • const now = () => new Date(); → 每次调用时间不同,输出必然不同。

为什么纯函数重要

它带来的实际好处很实在:

  • 可测试性强:给定输入,断言输出即可,不用 mock 全局状态或网络;
  • 可缓存(memoize):结果确定,可以安全地记下来,避免重复计算;
  • 可并行/并发安全:不改共享状态,多线程或异步调用也不打架;
  • 支持引用透明(Referential Transparency):代码中任意一处调用 add(2, 3),都可以直接替换成 5,程序行为不变。

基本上就这些。纯函数不是银弹,但它是函数式编程的地基——不复杂,但容易忽略。

以上就是JavaScript中什么是函数式编程_纯函数概念的详细内容,更多请关注php中文网其它相关文章!

编程速学教程(入门课程)
编程速学教程(入门课程)

编程怎么学习?编程怎么入门?编程在哪学?编程怎么学才快?不用担心,这里为大家提供了编程速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号