以数学运算加1,乘2为例。
一、命令式编程:告诉编辑器如何做
function addOne(arr) {
const result = [];
for(let i = 0; i < arr.length; i++) {
result.push(arr[i] + 1)
}
return result;
}
function double(arr) {
const result = [];
for(let i = 0; i < arr.length; i++) {
result.push(arr[i] * 2)
}
return result;
}
二、声明式编程:告诉编辑器做什么。如何做的部分被封装到“高阶函数”(如map,filter等)
const addOne = arr => arr.map(item => item + 1);
const double = arr => arr.map(item => item * 2);
声明式编程可以写出更简洁、更有表现力的代码。代码越少,bug出现的机率越小。