这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天。
深夜食堂-结论
- html,JavaScript,css要各司其职。
- 应当避免不必要的由js直接操作样式
- 可以用class来表示状态
- 纯展示类交互寻求零js方案
组件封装
组件是指web页面上抽出来一个个包含模版(HTML)、功能(JS)和样式(CSS)的单元。好的组件具备封装性、正确性、扩展性、复用性。 基本方法
- 结构设计
- 展现效果
- 行为设计(API(功能),Event(控制流))
重构:插件化
解耦
- 将控制元素抽取成插件
- 插件与组件之间通过依赖注入方式建立联系
- 将HTML模板化,更易于拓展
抽象
将组件通用模型抽象出来
组件封装总结
- 原则:封装性、正确性、扩展性、复用性
- 步骤:结构设计、展现效果、行为设计
- 三次重构:插件化、模板化、抽象化(组件框架)
过程抽象
- 用来处理局部细节控制的一些方法
- 函数式编程思想的基础应用
高阶函数
概念
- 以函数为参数
- 以函数作为返回值
- 常用于作为函数装饰器
纯函数
行为可预测,结果可预期,无副作用,代码中应多用纯函数,少用非纯函数,来增加可维护性。
编程范式
- 命令式编程:代码强调怎么做
- 声明式编程:代码强调做什么
- 声明式编程的好处:可扩展性更强
求是否是4的幂
- 可以用正则表达式判断一个数的二进制数是否由1和两个连续的0,两个连续的0可以不出现或者出现一次或多次。
- 或者判断这个数的二进制数和这个数的二进制数减一相与是否为0,而且这个二进制数的偶数位上不能为1
总结
根据使用场景来评估一个代码的好坏,在写完一个代码时,思考会不会有更简洁的写法,或性能更高的写法,当然也要考虑到是否值得优化,优化的性能是否能得到比较大的提升。若用到更好的算法但性能提升微不足道,那就不值得优化。