首页 存档 技术 查看内容

征服 JavaScript 面试: 什么是函数式编程?

2018-3-30 13:00 |来自: 互联网 304 0

摘要: 作者:十年踪迹 链接:http://www.zcfy.cc/article/master 函数式编程在 JavaScript 界已经成为了一个非常热门的话题。而仅在几年之前,还几乎没有 JavaScript 程序员了解函数式编程是什么,但在最近三年里,我看 ...

作者:十年踪迹

链接:http://www.zcfy.cc/article/master

函数式编程在 JavaScript 界已经成为了一个非常热门的话题。而仅在几年之前,还几乎没有 JavaScript 程序员了解函数式编程是什么,但在最近三年里,我看到非常多的应用程序代码库里大量使用着函数式编程思想。

函数式编程(通常简称为 FP)是指通过复合纯函数来构建软件的过程,它避免了共享的状态(share state)易变的数据(mutable data)、以及副作用(side-effects)。函数式编程是声明式而不是命令式,并且应用程序状态通过纯函数流转。对比面向对象编程,后者的应用程序状态通常是共享并共用于对象方法。

函数式编程是一种编程范式意味着它是一种软件构建的思维方式,有着自己的理论基础和界定法则。其他编程范式的例子包括面向对象编程和过程式编程。

与命令式或面向对象代码相比,函数式代码倾向于更简洁、更可预测以及更易于测试 但是如果你对它以及与它相关的常见模式不熟悉,读函数式代码会让你觉得信息量太大,而且相关文献对于初学者来说往往难以理解。

如果你开始 google 函数式编程的术语,你很可能一下子碰壁,那些学术术语对新人来说着实有点吓人。它有一个非常陡峭的学习曲线。但是如果你已经用 JavaScript 写了一段时间的代码,你很可能不知不觉中在你的软件里已经使用了很多函数式编程原理和功能。

不要让那些新名词把你吓跑。实际上它比你所听说的要简单很多。

最难的部分是记住那些以前不熟悉的词汇。在这些名词定义中蕴含了许多思想,你只有理解了它们,才能够开始掌握函数式编程真正的意义:

  • 纯函数(Pure functions)

  • 函数复合(Function composition)

  • 避免共享状态(Avoid shared state)

  • 避免改变状态(Avoid mutating state)

  • 避免副作用(Avoid side effects)

换句话说,如果你想要了解函数式编程在实际中的意义,你需要从理解那些核心概念开始。

一个纯函数是这样的一个函数:

  • 给它同样的输入,总是返回同样的结果,并且

//使用共享数据,函数调用的次序会改变函数调用的结果
const x = {
val: 2
};

const x1 = () =
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部