学习 JS | 青训营笔记

73 阅读1分钟

学习 JS | 青训营笔记

这是我参与「第四届青训营 - 前端场」笔记创作活动的第5天。

一、写JS的原则

1、各司其责

让 HTML、CSS 和 JS 职能分离

  • 避免不必要的由 JS 直接操作样式
  • 可以用 class 表示状态
  • 纯展示交互寻求零 JS 方案

2、组件封装

组件是指 Web 页面上抽出来一个个包含模版(HTML)、功能(JS)和样式(CSS)的单元。

  • 组件设计的原则:封装性、正确性、扩展性、复用性
  • 结构行为表现分离
  • 基本方法:结构设计、展现效果、行为设计
  • 三次重构:插件化、模板化、抽象化(组件框架)
  • 将控制元素抽取成插件,插件与组件之间通过依赖注入方式建立联系

3、过程抽象

为了能够让“只执行一次”的需求覆盖不同的事件处理,我们可以将这个需求剥离出来。这个过程称为过程抽象。

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

二、高阶函数(HOF)

把一个函数当做参数传递给另一个函数,称为高阶函数。

  • 以函数作为参数
  • 以函数作为返回值
  • 常用于作为函数装饰器
function HOF0(fn) {
    return function(...args){
        return fn.apply(this, args);
    }
}

为什么要使用高阶函数?

  • 可以减少代码量,使核心代码保持简洁
  • 高阶函数可以替换正常函数的核心算法,但整体架构不变,让实现更为简单。
  • 可以控制函数被触发的频率

常用高阶函数

  • Once
  • Throttle
  • Debounce
  • Consumer / 2
  • Iterative

写代码最应该关注使用场景


如有错误欢迎指正