vlambda博客
学习文章列表

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

函数式编程是什么呢?是一种编程范式,比较经典的函数式语言有 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'); // qiupucallRealName ('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等就是常见的 组合子 的包装。