如何写好JavaScript | 青训营笔记

78 阅读3分钟

如何写好JavaScript | 青训营笔记

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

入门必学:犀牛书和红宝书

写好JS的的一些原则

  1. 各司其责
  2. 组件封装
  3. 过程抽象

1.各司其职

例子:白天夜间模式切换

版本1

直接操作body的style 01.png

版本2

只是操作了class,较版本1更优 1.png

版本3

只使用CSS实现(纯样式改变) 3.png

结论

  • HTML/CSS/JS各司其责
  • 应当避免不必要的由JS直接操作样式
  • 可以用class来表示状态
  • 纯展示类交互寻求零JS方案

2.组件封装

例子:电商网站轮播图如何实现

结构:HTML

轮播图是一个典型的列表结构,我们可以使用无序列表ul元素来实现。

5.jpg

表现:CSS

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

6.jpg

行为:JS

Slider

  • +getSelectedltem()
  • +getSelectedltemlndex()
  • +slideTo()
  • +slideNext()
  • +slidePrevious()

7.jpg

控制流

8.jpg

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

总结

基本方法:

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

存在问题:不灵活

重构:插件化

解耦

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

构造函数复杂不是好现象

感悟

javascript是目前web领域中实用最为广泛的语言,不管是在前端还是在后端都能看到它的影子,可以说web从业者不论怎样都绕不开它。在前端领域,各种框架层出不穷,最火的时候几乎每个月都有新的框架诞生,如angularjs,vuejs等。在后端领域,nodejs可谓如火如荼,打破了人们对javascript只能作为前端语言的认知。按照此势头下去,javascript会越来越流行,会随着web的发展越来越重要。

javascript是Netscape公司推出的浏览器端语言,与java没有半点关系,可能想接着java炒火吧。然后js越来越火,网景公司想将其标准化,这样更加利于网络的发展,遂将其提交给了ECMA管理,负责对其的标准化。ECMA机构以JS为原型,推出了一个ECMAScript的脚步语言,规定各大浏览器厂商都必须依照ECMAScript标准实现各种的JS,保证JS具有良好的跨平台性。所以可以将ECMAScript看成是标准化的JS,一个意思。

ECMAScript本质上是一种语言规范,其与平台没有关系,比如浏览器等。web浏览器只是ES的宿主环境之一,负责实现ES以及提供ES与环境交互的手段。宿主环境还有Node以及Flash等。  

JS的实现要比ES规定的要复杂,ES只规定了基本语言特性。浏览器下的JS实现可以由以下部分组成: 

  • 语言部分(ES)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)