JavaScript 编码原则之各司其责

95 阅读2分钟

JavaScript 编码原则之各司其责

1. 各司其职

写一个可以调整深夜模式和白天模式的(也就是控制浅色和深色两种浏览模式)如下图:

111.png

112.png

第一种代码版本为: 113.png

第二种代码版本为: 114.png

区别:相比之下,第二种版本会更好,因为CSS定义了一个classname=night,所以当点击这个按钮时,bodyclassname就会改变,由默认的变成night。当要修改CSS时,只需要修改CSS中classnamenight中的属性,这样便不用使用JS去直接操作样式,样式就应该交给CSS去操作,这样会显得特别方便,而且代码看起来更简洁。如果使用第一种版本的话,就需要去修改JavaScript中的内容,使代码看起来特别臃肿,修改起来也很不方便。

总结:HTML/CSS/JS各司其职,应当避免使用JS去操作样式,可以用class来表示状态,纯展示类交互寻求零JS方案。

2. 组件封装

实现一个轮播图

  1. 用html把一个轮播图所需要的标签构造出来,一个轮播图其实是由一个div里面包裹着ul列表实现的 115.png

2.然后使用CSS把图片定位到同一个相对位置上重叠,轮播图的切换使用修饰词modifier,轮播图的切换动画使用CSS transition

116.png

3.然后使用JavaScript进行行为设计API

117.png API:

  • getSelectedItem()得到当前选中的那个元素
  • getSelectedItemIndex()得到当前选择元素在这个列表里的下标
  • slideTo()slideto到某个特定的元素上
  • slideNext()轮播到下一张图
  • slidePrevious轮播到上一张图片

定义一个slider的类 然后new一下这个类创建一个对象,然后设置一个定时器,这样便能实现自动轮播图 4.用js实现控制流(也就是轮播图的小点) 先添加控制流部分的html

118.png 两个a标签是为了实现左右滑动,div中的span是控制滑动的小圆点 js就是,给四个小圆点实现监听mouseovermouserout事件,在这两个监听事件里面我们去得到当前页面所要跳转的索引号,然后自动播放也停掉。 然后在监听播放事件,将播放的图片对应小圆点

- 过程抽象

  1. 用来处理局部细节的一些一些方法
  2. 函数式编程思想的基础应用

总结

有利于代码复用,功能抽象与模块化,便于测试和调试