&&前端&&函数式编程

6 篇文章 0 订阅
3 篇文章 0 订阅

函数式编程是一种方案简单、功能独立、对作用域外没有任何副作用的编程范式。

1)功能独立——不依赖于程序的状态(比如可能发生变化的全局变量);

2)纯函数——同一个输入永远能得到同一个输出;

3)有限的副作用——可以严格地限制函数外部对状态的更改。

函数式编程术语

Callbacks 是被传递到另一个函数中调用的函数。 你应该已经在其他函数中看过这个写法,例如在 filter 中,回调函数告诉 JavaScript 以什么规则过滤数组。

函数就像其他正常值一样,可以赋值给变量、传递给另一个函数,或从其它函数返回,这种函数叫做头等 first class 函数。 在 JavaScript 中,所有函数都是头等函数。

将函数为参数或返回值的函数叫做高阶 ( higher order) 函数。

当函数被传递给另一个函数或从另一个函数返回时,那些传入或返回的函数可以叫做 lambda。


命令式编程
命令式编程是向计算机提供一套执行任务的声明。
命令式编程常常改变程序状态,例如更新全局变量。
相反,函数式编程是声明式编程的一种形式。 通过调用方法或函数来告诉计算机要做什么。

函数式编程的核心原则之一是不改变任何东西。
变化会导致错误。 如果一个函数不改变传入的参数、全局变量等数据,那么它造成问题的可能性就会小很多。

回想一下,在函数式编程中,改变或变更叫做 mutation,这种改变的结果叫做“副作用”(side effect)。 理想情况下,函数应该是不会产生任何副作用的 pure function。

函数式编程的另一个原则是:总是显式声明依赖关系。

如果函数依赖于一个变量或对象,那么将该变量或对象作为参数直接传递到函数中。
这样做会有很多好处。 其中一点是让函数更容易测试,因为你确切地知道参数是什么,并且这个参数也不依赖于程序中的任何其他内容。

其次,这样做可以让你更加自信地更改,删除或添加新代码。 因为你很清楚哪些是可以改的,哪些是不可以改的,这样你就知道哪里可能会有潜在的陷阱。

最后,无论代码的哪一部分执行它,函数总是会为同一组输入生成相同的输出。

在函数中重构全局变量

函数式编程以函数理论为中心

能够将函数作为参数传递给其他函数,从另一个函数返回一个函数是有意义的

函数在 JavaScript 中被视为 First Class Objects,它们可以像任何其他对象一样使用。 它们可以保存在变量中,存储在对象中,也可以作为函数参数传递。

函数式编程就是创建和使用具有不变性的函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值