分类
未分类

前端拾遗|从前端函数式编程开始

函数式编程是什么呢?是一种编程范式,比较经典的函数式语言有 Haskell ,实际上 JacaScript 本身作为一门多范式的语言也是支持函数式的。

函数式具有五个鲜明的特点:

  1. 函数是一等公民
  2. Lambda表达式
  3. 纯函数,也叫没有副作用,不影响外部变量
  4. 不修改外部状态
  5. 引用透明,只依赖于输入的参数

来看一个例子


const arguments = ['qiupu'];
const callName = name => {
  console.log(arguments[0])
}
const callRealName = function(name) {
  console.log(arguments[0])
}
callName('knight'); // qiupu
callRealName ('knight'); // knight

这就是典型的上下文透传的例子。


数组里有一些方法可以实现类似Lodash库的语句组合形式,如链式调用、函数作为参数调用,也可以做一些控制语句代替for/while等。

来看一个例子

在JSX中我们常常看到这样的用法


const menu = (
<div>
  {
    props.post.filter(item =>item.name).map(item=>{
    return <div key={item.id}>{item.name}<div>
    })
  }
</div>
)

这里常见的map、filter等就是常见的 组合子 的包装。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注