函数式编程

在命令式编程中,我们按部就班地编写程序代码,详细描述要完成的事情以及完成的顺序。

函数式编程:

  • 函数式编程的主要目标是描述数据,以及要对数据应用的转换。
  • 在函数式编程中,程序执行顺序的重要性很低;而在命令式编程中,步骤和顺序是非常重要的。
  • 函数和数据集合是函数式编程的核心。
  • 在函数式编程中,我们可以使用和滥用函数和递归;而在命令式编程中,则使用循环、赋值、条件和函数。
  • 在函数式编程中,要避免副作用和可变数据,意味着我们不会修改传入函数的数据。如果需要基于输入返回一个解决方案,可以制作一个副本并返回数据修改后的副本。
// 命令式编程与函数式编程区别
// 例如,迭代数组
// 命令式编程
const printArray = function(array) {
    for (var i = 0; i < array.length; i++) {
        console.log(array[i])
    }
}
printArray([1, 2, 3, 4, 5])

// 函数式编程
const forEach = function(array, action) {
    for (var i = 0; i < array.length; i++) {
        action(array[i])
    }
}
const logItem = function(item) {
    console.log(item)
}
forEach([1, 2, 3, 4, 5], logItem)

mapfilterreduce是**JavaScript函数式编程的基础**。

JavaScript函数式类库和数据结构

参考网站