纯函数
Coddy JavaScript 函数声明 课程的第 3 课,共 14 课。
在 JavaScript 中,纯函数是指给定相同的输入时,总会返回相同的输出,并且不会产生任何可观察到的副作用的函数。纯函数不会更改任何外部状态,也不会与外部变量交互。
纯函数特别适用于:
数据转换:非常适合映射、筛选和归约数据。
状态管理:确保状态不可变性,尤其是在 Redux 这样的框架中。
纯函数的语法:
function add(a, b) {
return a + b;
}上面的 'add' 函数是纯函数,因为对于相同的输入,它总会产生相同的结果,并且不会影响任何外部状态。
非纯函数的语法:
let counter = 0;
function increment() {
return counter++;
}这个 'increment' 函数是非纯函数,因为它会修改外部变量或状态,从而产生副作用。
将非纯函数重构为纯函数:
let total = 0;
// 非纯函数
function addToTotal(amount) {
total += amount;
return total;
}
// 将非纯函数重构为纯函数
// 纯函数(创建新的 total)
function addToTotal(total, amount) {
return total + amount;
}在上面的示例中,将非纯函数重构为纯函数,可以确保它返回一个新对象,而不修改原对象。
挑战
简单你需要编写 JavaScript 代码,将现有的非纯函数重构为纯函数,并将这个函数命名为 nextBirthday。
这个函数应该接收一个参数,也就是年龄。
亲手试试
let userAge = 24;
// 非纯函数
function celebrateBirthday() {
userAge += 1;
return userAge;
}
// 不要修改上面的代码
// 在这里编写代码JavaScript 函数声明中的所有课
自己练习: JavaScript 在线编译器