这是我参与「第五届青训营」伴学笔记创作活动的第3天
今天学习的如何学好Javascript
主要是学习了一些编码原则,Left-pad事件,编码操作规范,最后再给js代码讲解了优化
与css和html不同,js的使用更加灵活与巧妙,所以要有原则与经验的介入,更偏向于很多编程语言,所以难度有所提升,需要用心学习。
原则:
- 各司其职(让Html,Css,Javascript职能分离)
- 组件分装(好的UI组件具备正确性·扩展性,复用性)
- 过程抽象(应用函数式编程思想)
实例一:实现页面切换的优化
最基础写法:就是鼠标点到图标就判断是什么然后切换图标和背景,比较简单
进阶:直接操作CSS简化操作(改变class名),实现了CSS和js的分离
进一步优化:不使用js,通过css的伪类选择器来实现页面选择
实例二:用js实现电商网站的轮播图
js方面使用的是API
- Slide
- +getSelectedltem
- +getSekectedltemlndex()
- +slideTo()
- +slideNext()
- +slidePrevious()
行为:控制流(用自定义事件解锁控制流)
重构:插件化
解耦
- 将控制元素抽取成插件
- 插件与组件之间通过依赖注入方式建立联系
总结
- 组件设计的原则:封装性,正确性,扩展性,复用性
- 实现组件的步骤:结构设计,展现效果,行为设计
- 三次重构
- 插件化
- 模板化
- 抽象化
过程抽象
- 用来处理局部细节控制的一些方法
- 函数式编程思想的基础应用
高阶函数
- 以函数为参数
- 以函数为返回值
- 常用于作为函数装饰器
常用
- Once
- Throttle
- Debounce
- Consumer/2
- Iterative
编程范式
命令式与声明式
总结
- 过程抽象/HOF/装饰器
- 命令式/声明式
Left-pad 事件
缺点:
- NPM模块粒度
- 代码风格
- 代码质量/效率