JS(下) | 青训营笔记

38 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

课堂笔记

课程重点内容:

  • 过程抽象
  • 高阶函数
  • 编程范式
  • 代码评判

过程抽象:

  • 用来处理局部细节控制的一些方法
  • 函数式编程思想的基础应用

image.png

具体案例:

操作次数限制

  • 一些异步交互
  • 一次性的HTTP请求

image.png

高阶函数:

  • 以函数作为参数
  • 以函数作为返回值
  • 常用于作为函数装饰器

image.png

具体案例:

  • Once(限制操作次数)
  • Throttle(节流): 高频事件触发,每次触发事件时设置一个延迟调用方法,并且取消之前延时 调用的方法。 简单概括:每次触发事件时都会判断是否等待执行的延时函数。
  • Debounce(防抖): 防抖触发高频率事件时n秒后只会执行一次,如果n秒内再次触发,则会重新计算。 简单概括:每次触发时都会取消之前的延时调用。
  • Consumer/2:每隔一个时间调用一次,相当于延迟执行,例如在游戏中,快速点击就会每隔一小段时间执行。
  • Iterative :若是可迭代的,就会把对象迭代出来。

编程范式:

  • 命令式
  • 声明式

image.png

具体案例:

命令式

image.png

声明式

image.png

代码评判:

  • 风格
  • 效率
  • 约定
  • 使用场景
  • 设计

image.png

具体案例:

Left-pad事件:具有在字符串前面拼指定字符到固定长度的功能

image.png

优化后:

  • 代码更简洁
  • 效率提升

image.png

总结:

过程抽象就是函数式编程思想的应用,使用高阶函数最大的作用是高阶函数大部分情况下都是纯函数,它应始终返回相同的值,自包含(不使用全局变量),它不应修改程序的状态或引起副作用(修改全局变量)。编程范式分为命令式和声明式,命令式又有面向过程如C语言和面向对象如Java,声明式如SQL等,而JS既有命令式的写法也有声明式写法的特点。另外,评判一段代码的好坏需要从代码风格、效率、约定、应用场景和设计这几个方面来考虑,不能从表面看待代码的好坏而忽略了代码应用场景等因素。