一、JS的简介
JavaScript(JS) 是一种轻量级,解释型或编译的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但它也被用到了很多非浏览器环境中,Javascript基于原型编程,多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
二、写好js的一些原则
- 各司其职:
- 让Html CSS Javascript职能分离
- 组件封装
- 好的UI组件具备正确性 扩展性 复用性
- 过程抽象
- 应用函数式编程思想
但并不是说一个网站页面真的 HTML/CSS/JS各干各的事,互相之间没有一点联系,而是不是在必需js的前提下,尽量不使用js直接操作样式。 但判断是否 HTML/CSS/JS各司其职并不能仅仅通过他们是写在一个文件或者两个文件来判断,而是看他们是否做的是自己该做的内容,有没有越界的问题。 实际上,有些时候 HTML/CSS/JS的结合才会做出更多更有趣的效果。这也只是一些建议,而非必须的规定。
三、组件封装
组件是指Web页面上抽出来一个个包含模版(HTML)、功能(JS)和样式(CSS)的单元。好的组件具备封装性、正确性、扩展性、复用性。
关于组件封装几个注意点:
- 结构设计
- 展示效果
- 行为设计
- API(功能)
- Event(控制流)
例子:设计一个轮播图
结构:HTML
轮播图是一个典型的列表结构,我们可以使用无序列表ul元素来首先
<div id="" >
<ul>
<li>放图片 </li>
<li> 图片</li>
</ul>
<div>
表现:CSS
- 使用CSS绝对定位将图片重叠在同一个位置
- 轮播图切换的状态使用修饰符(modifier)
- 轮播图的切换动画使用CSS transition
行为:JS
API设计应保证原子操作,职能单一,保证灵活性
过程抽象
过程抽象 是用来处理局部细节控制的一些方法和函数式编程思想的基础应用,通常通过高阶函数(参数值为函数,返回值也为函数的一类函数)来实现
- 用来处理局部细节控制的一些方法
- 函数式编程思想的基础应用
常用的高阶函数:
- Once
- Throttle
- Debounce
- Consumer
- Iterative
编程范式又分为命令式和声明式。