编程范式:
- 命令式编程(Imperative)
- 声明式编程(Declarative)
- 函数式编程(Functional)
面向对象、泛型、元编程 也都是很主要的编程范式
命令式编程: 命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么
声明式编程: 声明式编程是以数据结构的形式来表达程序执行的逻辑
函数式编程: 函数式编程和声明式编程是有所关联的,因为他们思想是一致的:即只关注做什么而不是怎么做
针对“将数组元素的的每项变为原来的2倍” 体验命令式编程和声明式编程的区别
// 命令式编程
const double = (list) => {
let result = []
for (let i = 0; i < list.length; i++) {
result[i] = 2 * i
}
return result
}
// 声明式编程
const list = []
const result = list.map(item => 2 * item)
头等函数
高阶函数
- 接受一个或多个函数作为输入
- 或输出一个函数
纯函数
一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。
const root = window
const reactive = (name => {
console.log(name, root)
})
reactive
不是纯函数,因为它的执行依赖外部变量 root