如何写好JavaScript|青训营笔记

203 阅读2分钟

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

深夜食堂-结论

  • html,JavaScript,css要各司其职。
  • 应当避免不必要的由js直接操作样式
  • 可以用class来表示状态
  • 纯展示类交互寻求零js方案

组件封装

组件是指web页面上抽出来一个个包含模版(HTML)、功能(JS)和样式(CSS)的单元。好的组件具备封装性、正确性、扩展性、复用性。 基本方法

  • 结构设计
  • 展现效果
  • 行为设计(API(功能),Event(控制流))

重构:插件化

解耦

  • 将控制元素抽取成插件
  • 插件与组件之间通过依赖注入方式建立联系
  • 将HTML模板化,更易于拓展

抽象

将组件通用模型抽象出来

组件封装总结

  • 原则:封装性、正确性、扩展性、复用性
  • 步骤:结构设计、展现效果、行为设计
  • 三次重构:插件化、模板化、抽象化(组件框架)

过程抽象

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

高阶函数

概念

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

纯函数

行为可预测,结果可预期,无副作用,代码中应多用纯函数,少用非纯函数,来增加可维护性。

编程范式

  • 命令式编程:代码强调怎么做
  • 声明式编程:代码强调做什么
  • 声明式编程的好处:可扩展性更强

求是否是4的幂

  • 可以用正则表达式判断一个数的二进制数是否由1和两个连续的0,两个连续的0可以不出现或者出现一次或多次。
  • 或者判断这个数的二进制数和这个数的二进制数减一相与是否为0,而且这个二进制数的偶数位上不能为1

总结

根据使用场景来评估一个代码的好坏,在写完一个代码时,思考会不会有更简洁的写法,或性能更高的写法,当然也要考虑到是否值得优化,优化的性能是否能得到比较大的提升。若用到更好的算法但性能提升微不足道,那就不值得优化。