当前位置: 首页> 汽车> 新车 > 优秀的店面空间设计网站_网络建设和维护_qq群推广网站免费_软文广告经典案例300

优秀的店面空间设计网站_网络建设和维护_qq群推广网站免费_软文广告经典案例300

时间:2025/7/9 12:46:46来源:https://blog.csdn.net/2302_80171619/article/details/147118702 浏览次数: 1次
优秀的店面空间设计网站_网络建设和维护_qq群推广网站免费_软文广告经典案例300

「纯函数」是啥?

在 JavaScript(或者任何编程语言)中:

纯函数(Pure Function) 是指:相同的输入永远会得到相同的输出,且没有任何副作用 的函数。


✅ 一个纯函数的两个特点:

  1. 相同输入 => 相同输出
  2. 没有副作用(No Side Effects)
    • 不修改外部变量
    • 不读写文件
    • 不访问数据库
    • 不修改 DOM
    • 不使用随机数或 Date.now() 这类不确定的东西

举个例子(纯函数):

function add(x, y) {return x + y;
}
  • 相同输入 (2, 3) 永远输出 5
  • 没有访问外部的东西,也没修改外部状态

❌ 举个非纯函数的例子:

let a = 10;function addToA(x) {return x + a;
}
  • 这个函数用了外部的 a
  • 如果 a 改变了,输出也会变 —— 所以这不是纯函数 ❌

📌 你问的重点:“函数内部只能用函数内部的值?”

不是「必须」,而是说:

如果你想写纯函数,那你就不能依赖函数外部的变量。
但有时候你 不需要写纯函数,那就可以用外部变量。


🎯 总结一句话:

纯函数是一种「干净、可预测」的写法,只使用输入参数,不依赖也不修改外部的任何东西。



为什么纯函数其实很有用?

1. 调试容易

你只要看输入就知道输出,根本不用管外面发生了啥。

function getUserAge(user) {return 2025 - user.birthYear;
}
  • 这就是纯函数
  • 一眼看懂,也不怕被别的地方影响

2. 测试方便

写测试不用准备一堆外部变量,只要传入参数就行。

console.log(getUserAge({ birthYear: 2000 })) // 总是输出 25

3. 不会莫名其妙出 bug

比如下面这种非纯函数

let total = 0;function add(x) {total += x;
}

你可能某天忘了 total 是全局的,结果某个地方一改,所有调用都崩了


4. 配合函数式编程

.map().filter().reduce() 这些方法

实战纯函数例子1:处理表单数据


function formatUserInput(name, email) {return {name: name.trim(),email: email.toLowerCase().trim()};
}

不依赖外部值

传啥给你就改啥,输出可预测,调试容易

例子2:计算折扣价格


function getDiscountPrice(price, discountRate) {return price * (1 - discountRate);
}

不动任何全局变量

在任何地方调用都能保证结果对得起输入

例子3:格式化时间(输入 timestamp,输出字符串)

function formatDate(timestamp) {const date = new Date(timestamp);return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()}`;
}

💡 这个也基本算纯函数(只要你不给它 Date.now() 这种不确定的东西)

关键字:优秀的店面空间设计网站_网络建设和维护_qq群推广网站免费_软文广告经典案例300

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: