如何写好JavaScript | 青训营笔记

92 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第3天,打算去看老师推荐的这本书《JavaScript: The Good Parts》(中文书名《JavaScript语言精粹》)。

写好JS的原则

各司其责(让HTML、CSS、JavaScript职能分离)、组件封装、过程抽象(函数式编程)

各司其责

实现白色、黑色背景变换的三种方式

  1. 通过JS调整CSS样式

  2. 通过JS调整状态(class)

  3. 不用JS,使用CSS中的伪类选择器(推荐,但没看懂)

结论

  1. HTML/CSS/JS各司其责

  2. 应当避免不必要的由JS直接操作样式

  3. 可以用class来表示状态

  4. 纯展示类交互寻求零JS方案

组件封装

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

组件封装原则:封装性、正确性、扩展性、复用性

如何实现一个轮播图?

结构(结构设计)

轮播图是一个列表结构,我们可以使用无序列表ul来实现

样式(展现效果)

  • 使用CSS绝对定位将图片重叠在同一个位置
  • 轮播图切换的状态使用修饰符(modifier)
  • 轮播图的切换动画使用CSS transition

行为(行为设计)

  • API(功能):设置一些接口来操作

image.png

  • Event(控制流):自定义事件来解耦

重构

  1. 插件化

    解耦

  • 将控制元素抽取成插件
  • 插件与组件之间通过依赖注入方式建立联系
  1. 模板化

    将HTML模板化,更易于扩展

  2. 抽象化

    将组件通用模型抽象出来

过程抽象

用来处理局部细节控制的一些方法

函数式编程思想的基础应用

高阶函数:HOF

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

常用高阶函数

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

避免我们使用非纯函数的可能性

编程范式

命令式与声明式

image.png

JavaScript即有命令式又有声明式

image.png

写代码应该最关注什么

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