编程范式 | 青训营

82 阅读2分钟

JavaScript的函数式编程范式 机器语言、汇编语言和高级语言 image.png

image.png 编译器的出现 image.png c语言是中级语言,可以对位、字节、地址直接操作,面向过程语言的代表。 c++:面向对象语言的代表,有集成、权限控制、虚函数、多态等功能。 Lisp:函数式语言代表,代码和结构都是列表形式,有了闭包的概念 JS:基于原型和头等函数的多范式语言:过程式,面向对象,函数式,响应式。JS可以进行网站开发,web服务开发,嵌入到游戏等。

编程范式:

什么是编程范式:程序语言的特性:1,是否允许副作用 2,操作的执行顺序 3,代码组织 4,状态管理 5,语法和词法。

image.png 常见的编程范式:

image.png 命令式指的是程序员如何操作机器改变状态。过程式是把操作用过程进行分组,面向对象是根据操作和它对应的状态进行分组。

声明式指的是程序员声明响应的结果而不进行具体操作。

image.png 数据与算法关联弱,不利于修改和扩充,不利于代码重用。 面向对象:封装继承多态依赖注入。

image.png

image.png 面向对象的问题在于他总是附带着所有他需要的隐含环境,比如我们需要一根香蕉,但是的得到的却是一个拿着香蕉的大猩猩,而且还有整个丛林。

image.png 函数式编程是尽量减少变化的部分,由此让代码逻辑更清晰

image.png 纯函数:不应该依赖函数外部的环境。右侧例子中把变量转移到函数内部。 image.png 库里化:可以暂存一些重复的参数 image.png 函数组合 image.png functor image.png 打平操作 image.png 直接对两个容器进行操作(即使一个容器嵌套在另一个容器里),下面的代码是一些Applicative 优化 image.png

响应式编程 没有纯粹的响应式编程语言,需要借助工具库rxjs image.png 观察者模式就是数据双向绑定,迭代器就是不断推送数据。 image.png

1e504ef53b68d800bb92f5caa6b7ad2.jpg 经过管道的过程叫做操作符 image.png

image.png