JavaScript 风格指南(笔记)

变量

  1. 使用有意义、可读性好的变量名
  2. 使用 const 定义长俩个
  3. 对功能类似的变量名采用统一的命名风格
  4. 使用易于检索名称(特别是数字)
  5. 传递参数时,使用说明变量
  6. 不要绕太多的弯子,显式优于隐式
  7. 当类/对象名已有意义时,对其变量命名不需要再次重复
  8. 避免无意义的条件判断

函数

  1. 函数参数不超过 2 个
  2. 函数功能的单一性
  3. 函数命名明确功能
  4. 函数只做一层抽象
  5. 移出重复的代码
  6. 采用默认参数精简代码
  7. 使用 Object.assign 设置默认对象
  8. 不要使用标记(Flag) 作为函数参数
  9. 避免副作用,即避免「接受一个值并返回一个结果」
  10. 不要写全局函数
  11. 采用函数式编程
  12. 封装判断条件
  13. 避免「否定情况」的判断
  14. 避免条件判断,使用多态
  15. 避免类型判断
  16. 避免过度优化,现代浏览器运行时会对代码自动优化
  17. 删除无效代码

对象和数据结构

  1. 使用 getters 和 setters
  2. 让对象拥有私有成员,可以通过闭包完成

  1. 单一职责原则(SRP)
  2. 开/闭原则(OCP),易于扩展,难于修改
  3. 利斯科夫替代原则(LSP),子类对象应该能够替换其超类对象被使用
  4. 接口隔离原则(ISP),不依赖不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上
  5. 依赖反转原则(DIP)
  6. 使用 ES6 的 classes 而不是 ES5 的 Function
  7. 使用方法链
  8. 优先使用组合模式而非继承

测试

  1. 单一的测试每个概念

并发

  1. 用 Promises 替代回调
  2. Async/Await 是较 Promises 更好的选择

错误处理

  1. 捕获错误
  2. 不要忽略被拒绝的 promises

格式化

  1. 大小写一致
  2. 调用函数的函数和被调函数应放在较近的位置

注释

  1. 只对存在一定业务逻辑复制性的代码进行注释
  2. 不要在代码库中遗留被注释掉的代码
  3. 不需要版本更新类型注释
  4. 避免位置标记
  5. 避免在源文件中写入法律评论