参考资料

先上参考资料
入门
进阶

示例

我很难用语言描述, 所以还是废话少说, 放码过去吧.(talk is cheap, show you the code)

1
2
// 假设我们要找arr里大于3的值
const arr = [1, 2, 3, 4, 5, 6]

命令式编程(Imperative)

1
2
3
4
5
6
7
8
    let res = [];
    // 告诉计算机要遍历
    for(let i = 0; i < arr.lenght; i++){
        // 告诉计算机把 > 3的值取出来
        if(i > 3){
            res.push(i)
        }
    }

声明式编程(Declarative)

1
2
SELECT * FROM arr WHERE val > 3

函数式编程(Functional)

1
    arr.filter(i => i > 3)

我个人理解:

  • 命令式重视过程(How)
  • 而声明是重视结果(What),
  • 而函数式是声明式的进阶.把过程弱化, 只重视结果,且结果可以当做下一个函数的入参, 在数学上称作函数组合(function composition); 即 f(x) -> g(x) = f(g(x)))