Menu
CoddyTech

纯函数

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;
}

在上面的示例中,将非纯函数重构为纯函数,可以确保它返回一个新对象,而不修改原对象。

challenge icon

挑战

简单

你需要编写 JavaScript 代码,将现有的非纯函数重构为纯函数,并将这个函数命名为 nextBirthday。

这个函数应该接收一个参数,也就是年龄。

亲手试试

let userAge = 24;

// 非纯函数 
function celebrateBirthday() {
    userAge += 1;
    return userAge; 
} 
// 不要修改上面的代码
// 在这里编写代码

JavaScript 函数声明中的所有课

自己练习: JavaScript 在线编译器