【视频】- 5分钟学习<函数式编程>

温馨提示:视频请点此观看

// 视频文字版:

JavaScript 函数式编程是一个存在了很久的话题,

现在ES6语法对于函数式编程更为友好,所以开始变的更加火热。

函数式编程可以理解为,以函数作为主要载体的编程方式,用函数去拆解、抽象一般的表达式,好处主要有以下几点:

1、语义更加清晰

2、可复用性更高

3、可维护性更好

4、作用域不会污染命名空间

现在来看一个基本的函数式编程,目标是把每个单词的首字母变为大写,

从上面的例子可以看出,函数式编程的特征,

1、每个函数只做一件事;

2、每个函数只接收一个参数;

3、每个函数只返回一个结果;

好处是,结果是可预期的,且易于调试;

坏处是,很容易出现横向的多层嵌套。

就像下面这样,

//计算1,2,3,4相加之和

当然了,一般不会这样写,这只是极端表现。但客观上来看,函数式编程确实有可能出现这种情况。

上述情况的优化,可以采用“链式调用”来解决,

这样改写后,结构会整体变得比较清晰,而且链式调用的每一环在做什么也可以很容易的展现出来。

但随着项目的进行,代码量的增加,业务的复杂度不断上升,各种回调的存在 ,会使代码的嵌套层数不断增加。

这时更好的办法,就是Promise的链式结构,看下面这个例子,

它能够做到在代码高度复杂的情况下,依然保持代码层次的清晰,就像这样的。

扩展阅读:

大白话 Promise,这到底是干啥用的?

原文发布于微信公众号 - web前端教室(webfeel)

原文发表时间:2017-12-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微服务生态

究竟怎样写代码才算是好代码

今天让我们来谈谈代码吧。代码重要吗?当然,代码就是设计(Jack W.Reeves, 1992);代码是最有价值的交付物。我们需要好代码吗?在给“好代码”下个定...

613
来自专栏知识分享

3-学习GPRS_Air202(需要知道的关于Lua的一些基本的知识)

1715
来自专栏恰同学骚年

设计模式的征途—10.装饰(Decorator)模式

虽然目前房价依旧很高,就连我所在的成都郊区(非中心城区)的房价均价都早已破万,但却还是阻挡不了大家对新房的渴望和买房的热情。如果大家买的是清水房,那么无疑还有一...

633
来自专栏LinkedBear的个人空间

【挑战剑指offer】系列02:替换空格 原

本系列的算法原题来自于“牛客网-剑指offer”,写这个板块,不仅仅是解决算法问题本身,更是手动提高难度、自行变式,思考更多的解决方案,以带给自己一些启发。

823
来自专栏Crossin的编程教室

【每周一坑】田忌赛马

本周的题目取自著名的历史典故:田忌赛马 背景资料如下 田忌经常与齐国众公子赛马,设重金赌注。田忌的上宾孙膑发现他们的马脚力都差不多,马分为上、中、下三等,于是对...

27010
来自专栏申龙斌的程序人生

零基础学编程005:打印一行复利数据

问题 上次文章《集成开发环境IDE》里留了一道练习题: 如何用Python打印这篇枯燥的《复利数据表》: (1+0.01) ^ 1 = 1.01 (1+0.0...

2689
来自专栏申龙斌的程序人生

零基础学编程009:只显示2位小数

我们仍要继续解决这个问题:如何用Python打印这篇枯燥的《复利数据表》? (1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 = 1.02 (...

2717
来自专栏Ryan Miao

如何优化coding

如何优化coding 前言 最近一直在做修改bug工作,修改bug花费时间最多的不是如何解决问题而是怎样快速读懂代码。如果代码写的好的,不用debug就可以一眼...

3147
来自专栏java一日一条

优秀的Java程序测试是什么样的?

测试的名字至关重要,特别是从文档角度来看的话。我们应该能够大声读出测试的名字就像一组需求一样。事实上,有一个伟大的IntelliJ插件,叫Enso,它会将你的测...

402
来自专栏企鹅号快讯

Python 相较于Java 而言,有什么优势?

最近在后台,有很多的同学私聊我说,Python和Java.,哪个具有前景呢?今天我们就来简单的讲一下这两者的区别: 我认为C, Java跟Python都是非常成...

2026

扫码关注云+社区