函数式编程基本概念

编程范式

  • 命令式编程(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)

头等函数(first-class function)

高阶函数(high-order function)

  • 接受一个或多个函数作为输入
  • 或输出一个函数

纯函数(pure function)

满足纯函数的条件:

  1. 函数的执行结果只依赖于它的参数
  2. 函数在执行过程里面没有副作用
const root = window
const reactive = (name => {
  console.log(name, root)
})

// reactive 不是纯函数,因为它的执行依赖函数的外部变量 root

DOM操作/数据库操作等具有副作用,因为它们改变了外部数据

纯函数的优点:

  • 可读性好
  • 代码可测
  • 易于复用

转载于:https://www.cnblogs.com/gaollard/p/9575594.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值