编程思想
- 函数式编程: 是一种编程范式,是一种构建计算机程序结构和元素的风格,它把计算看做是对数字函数的评估,避免了状态的变化和数据的可变。
- 命令式编程: 是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么
- 声明式编程: 以数据结构的形式来表达程序执行的逻辑。它的主要思想是告诉计算机应该做什么,但不指定具体要怎么做。
- 比如今天需求接到产品的一个需求: 从技术层面上看需要对数组的每一项 + 1
实现
- 初级程序员 — 使用指令式编程思想解决
let arr = [1,2,3,4];
let newArr = [];
for(var i=0; i<arr.length; i++) {
newArr.push(arr[i] + 1);
}
console.log(newArr);
- 有经验的程序员 — 使用指令式编程思想解决
let newArr = (arr) => {
let res = [];
for(let i=0; i<arr.length; i++) {
res.push(arr[i] + 1);
}
return res;
}
console.log(newArr(arr));
- 使用函数式思想解决
let arr = [1,2,3,4];
let newArr = (arr, fn) => {
let res = [];
for(let i=0; i<arr.length; i++) {
res.push(fn(arr[i]));
}
return res;
}
let add = item => item + 5;
let sum = newArr(arr,add);
console.log(sum);
- 这时来了新需求,需要对数组每一项进行 * 5 操作,前两种对原函数难以扩展
- 使用函数式思想拓展只需要加一个方法,在调用newArr即可
let multi = item => item * 5;
let product = newArr(arr,multi);
console.log(product);
- 函数式编程将我们程序分解为一些更可重用,更可靠且易于理解的部分,然后将他们组合起来,形成一个更易推理的程序整体