zeroshangdi

Results 9 comments of zeroshangdi

# 什么是无状态和数据不可变(Statelessness and Immutable data) ## 无状态 个人理解: 就是说不受内部环境的影响, 函数内没有变量, 相同的参数得到的一定是相同的结果 HTTP: 在 http 中, 因为每次的请求都是独立的, 为此我们引入了 cookie, session 等机制保存了请求上下文、记录状态 React: 无状态组件: 指的是组件内部没有变量, 完全依赖外部的变量 无状态组件优点: 相同的输入一定是相同的结果, 易于测试、排查问题 遵循函数式编程规范, 代码更易阅读 因为没有内部的变量,...

字面意思: 除了其本身的功能外, 还有其他的作用效果 # 纯函数 在 JS 函数中, 有一种函数叫做纯函数, 它便是一种无副作用的函数, 在输入相同的情况下, 返回的结果也相同. 它即不受外界的环境影响结果, 也不影响外界的环境. # 引用透明 除了纯函数外, 引用透明也与副作用的概念相关, 引用透明表示两个相同的表达式/函数可以在程序的任意位置互相替换而不影响结果 它的优点是相比与非引用透明的语言更易理解, 以下代码中, 若 fun 函数无副作用, 则 res1 与 res2 相等, 即替换...

## 理解 柯里化, 又叫 部分求值, 目的是使函数理解并处理部分应用, 核心的思想是 把接收多个参数的函数转化为接收一个(部分)参数并返回调用下个参数的函数. 所谓的柯里化, 简单来说就是把原本接收多个参数的函数修改为接收一个参数的多层函数, 例 let res = fun(a, b, c, d) let res = fun(a)(b)(c)(d) ## 作用 1、参数的复用 2、提前返回部分结果 3、延迟后续的运算过程 ## 实现 ```...

# 什么是函数式编程 ## 发展过程 1、命令式编程 2、面向对象编程 3、函数式编程 个人理解: 命令式编程其实也就是面向过程编程, 在编程时更注重过程, 需要我们来告诉计算机该怎么做, 而函数式编程则更注重结果, 在编程的时候我们不需要关心函数的内部实现, 而只需要告诉计算机我们需要什么样的结果 函数式编程的侧重点就是函数, 是引用数学中函数的概念, 它强调通过函数的组合来实现结果 函数就是描述集合与集合之间的转换关系, 通过输入来得到对应的输出的方法. ## 函数式编程特点 1、函数是一等公民 2、声明式编程 3、无状态和数据不可变 4、无副作用、纯函数 5、惰性执行

## 概念 如果一个函数的结果只依赖函数的参数, 且在执行的过程中不产生任何副作用, 那么这就是一个纯函数 个人理解: 不受外界影响, 不影响外界 ## 优点 利于调试和测试 在参数不变的情况下可以缓存函数结果 ## 特性 无状态 引用透明 纯函数组合纯函数还是纯函数

# 为什么 BE 本人说法是当时设计 arguments 的时候只花了十天时间整理设计的太糙了, 后来本来也打算改成真的 Array, 但是后来觉得多一事不如少一事又不改了 后来因为 ES 要向后兼容, 如果改动的话牵扯太大(兼容性), 就不改了 直到 ES6 终于对 arguments 提供了一个替代品 - rest parameters: # 怎么转化 ```javascript Array.from(arguments) Array.prototype.slice.call(arguments) ``` # 引用...

# 解释 声明式编程是一种编程规范, 需要告诉计算机你要做什么, 只关注结果, 而不需要关心计算机如何实现 与其相对应的是命令式编程.命令式编程只关注过程, 需要告诉计算机怎么做, 而不关心最终的结果 函数式编程是声明式编程的一种, 同时Vue、React等也是声明式编程的应用, 它使得开发者无需关心底层的DOM操作逻辑 # 优点 简化开发过程、减少重复代码、提高开发效率 保留了改进的空间 提供全局协调能力

## 解释 官方: 惰性计算(Lazy Evaluation),又称懒惰计算、懒汉计算,是一个计算机编程中的一个概念,它的目的是要最小化计算机要做的工作。 理解: 同惰性加载等同理, 主要的思想就是当需要的时候才进行操作, 通过把不需要当前立即执行的操作滞后来实现优化的一种方案. 惰性计算在 Python 等纯粹的函数式编程中都有体现, 在 JS 中可以通过 .next() 的形式来实现

## 解释 官方: 惰性计算(Lazy Evaluation),又称懒惰计算、懒汉计算,是一个计算机编程中的一个概念,它的目的是要最小化计算机要做的工作。 理解: 同惰性加载等同理, 主要的思想就是当需要的时候才进行操作, 通过把不需要当前立即执行的操作滞后来实现优化的一种方案. 惰性计算在 Python 等纯粹的函数式编程中都有体现, 在 JS 中可以通过 .next() 的形式来实现