Java
Script 的函数式编程(Functional Programming,简称 FP)是一种以数学函数思想组织代码的编程范式。它不强调“怎么做”(命令式步骤),而是聚焦于“做什么”——用纯函数组合、声明式表达来处理数据和逻辑。核心不是语法糖,而是思维方式的转变:避免状态变更、拒绝副作用、让数据流清晰可追溯。
不可变性(Immutability)指:一旦创建一个值(对象、数组等),就不再直接修改它;任何“更新”都通过生成一个新值来完成。这不是 JS 语言强制的特性,而是一种主动遵循的设计约束。
const user = {name: "Alice"}; user.name = "Bob" 是完全合法的,但破坏了不可变性Object.assign、map/filter/reduce 等返回新结构的方法,或借助 Object.freeze(浅冻结)、immer(深代理)、Immutable.js 等方案它不只是“看起来干净”,而是直接解决实际开发中的几类顽疾:
===)判断是否更新。不可变更新天然支持引用对比——只要引用变了,就说明数据变了,无需深比较,性能更优假设要给用户对象添加年龄字段:
user.age = 30; —— 原始 user 被改,所有持有该引用的地方都会感知到变化const newUser = {...user, age: 30}; —— 原 user 不动,newUser 是独立副本,语义清晰、影响可控不复杂但容易忽略