Rxjs学习笔记一

函数式编程

  • 声明式

和声明式相对应的编程方式叫命令式编程,两者区别参考函数的map和for循环

  • 纯函数

满足两点条件:1,函数的执行过程完全由输入参数决定,不会受除参数之外的任何数据的影响;2,函数不会修改任何外部状态,比如修改全局参数或传入的参数对象

与纯函数相反的是不纯函数,可能会做以下几点:1,改变全局参数的值; 2,改变输入参数的对象 3,读取用户的输入,比如调用了alert或者confirm函数 4,抛出一个异常  5,网络输入输出操作,操作浏览器的DOM

  • 数据不可变

当我们需要数据状态发生改变时,保持原有数据不变,产生一个新的数据来体现这种变化

为什么函数式编程最近才崛起

函数式编程诞生于1958年,当初编程要考虑硬件的架构,而现在芯片转为多核,软件架构也向分布式方向发展

函数式编程和面向对象编程的比较

面向对象编程思想是把数据封装在类的实例对象中,把数据隐藏起来,让外部不能直接操作这些对象,只有通过类提供的实例方法来读取和修改这些数据,带来的缺点是修改历史完全被隐藏了,没法知道对象是一步一步走向这个状态的,导致代码的可维护性下降;

而函数式编程,倾向于数据就是数据,函数就是函数,让每个函数都不要去修改原有的数据(不可变性),而且通过产生新的数据来作为运算结果(纯函数)

响应式编程

程序的输入看做一个数据流

猜你喜欢

转载自blog.csdn.net/weixin_39460408/article/details/81810390