如何写好JS代码

130 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的的第2天

什么才是好的JS代码?

1.各司其责:让CSS,HTML,JS功能分离
2.组件封装:好的UI结构具有正确性,扩展性,复用性
3.过程抽象:应用函数式编程思想

各司其责简例:

写一段JS,控制一个网页,让他支持浅色和深色两种模式
方法1:

image.png

如图,点击之后会切换文字和背景的颜色

版本运行起来有什么问题呢?有没有优化空间呢

方法2:

image.png

对比方法1和2,方法1直接去操作DOM元素操作CSS,而方法2只是切换类,版本2更好,能实现代码各司其责

还有改进空间吗?

方法3

image.png

使用伪类选择器,没有JS操作,纯HTML和CSS

结论
1.HTML/CSS/JS 各司其责
2.避免不必要的由JS直接操作样式
3.可以用CLASS表示状态
4.纯展示类交互寻求零JS方案

组件封装

组件是指web上抽出来的包含模板,功能,样式的单元,好的组件具备封装性,正确性,扩展性,复用性

基本方法

  • 展示效果
  • 结构设计
  • 行为设计
    • API
    • Event

重构:插件化
解耦

  • 将HTML模板化,更容易拓展

image.png

过程抽象

image.png

image.png

高阶函数

HOF

-以函数作为参数
-以函数作为返回值
-常用做函数装饰器

纯函数

输入不变则结果不变且可预测

非纯函数

image.png

尽可能的使用纯函数,可以提高代码的维护性

编程范式

-命令式
-声明式

image.png