这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
课堂笔记
课程重点内容:
- 过程抽象
- 高阶函数
- 编程范式
- 代码评判
过程抽象:
- 用来处理局部细节控制的一些方法
- 函数式编程思想的基础应用
具体案例:
操作次数限制
- 一些异步交互
- 一次性的HTTP请求
高阶函数:
- 以函数作为参数
- 以函数作为返回值
- 常用于作为函数装饰器
具体案例:
- Once(限制操作次数)
- Throttle(节流): 高频事件触发,每次触发事件时设置一个延迟调用方法,并且取消之前延时 调用的方法。 简单概括:每次触发事件时都会判断是否等待执行的延时函数。
- Debounce(防抖): 防抖触发高频率事件时n秒后只会执行一次,如果n秒内再次触发,则会重新计算。 简单概括:每次触发时都会取消之前的延时调用。
- Consumer/2:每隔一个时间调用一次,相当于延迟执行,例如在游戏中,快速点击就会每隔一小段时间执行。
- Iterative :若是可迭代的,就会把对象迭代出来。
编程范式:
- 命令式
- 声明式
具体案例:
命令式
声明式
代码评判:
- 风格
- 效率
- 约定
- 使用场景
- 设计
具体案例:
Left-pad事件:具有在字符串前面拼指定字符到固定长度的功能
优化后:
- 代码更简洁
- 效率提升
总结:
过程抽象就是函数式编程思想的应用,使用高阶函数最大的作用是高阶函数大部分情况下都是纯函数,它应始终返回相同的值,自包含(不使用全局变量),它不应修改程序的状态或引起副作用(修改全局变量)。编程范式分为命令式和声明式,命令式又有面向过程如C语言和面向对象如Java,声明式如SQL等,而JS既有命令式的写法也有声明式写法的特点。另外,评判一段代码的好坏需要从代码风格、效率、约定、应用场景和设计这几个方面来考虑,不能从表面看待代码的好坏而忽略了代码应用场景等因素。