这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天。
本篇笔记是对今天月影老师的js课程的归纳总结及个人感悟。
与课程内容保持一致,本篇笔记没有很多js的语法等等内容,主要是高观点下的js分析,包括好的代码写作规则与创作习惯等等。
一、JavaScript 好代码的标准/原则
先推荐几本好书 “犀牛书”“红宝书” “蝴蝶书”,几乎是前端工程师的必备。
1. HTML/CSS/JS 各司其责:
- 职能分离→代码可读性,可维护性增强
- 避免由js直接操作样式
2. 组件封装:ui组件
A.
组件的定义:组件是指web网页上抽出来一个个包含模板(html)、功能(js)、样式(css)的单元。
好的组件具备封装性、正确性、扩展性、复用性。
实现组件的步骤:结构设计、展现效果、行为设计
B.
三次重构
插件化→将控制元素抽取成插件,插件与组件之间通过依赖注入的方式建立联系
模板化→将HTML模板化,更易于扩展
抽象化(组件框架)→将组件通用模型抽象出来
3. 过程抽象
过程抽象概念:
-
用来处理局部细节控制的一些方法
-
函数式编程思想的基础应用
例如react hooks
二、一些零碎知识点
1. 高阶函数是什么?
-
以函数作为参数
-
以函数作为返回值
-
常用于作为函数装饰器
2. JavaScript 编程范式
命令式与声明式编程的区别?
-
举一个简单例子,做一个书籍打分网站,一位用户想过滤出评分8以上的书。
-
命令式编程:更加注重过程,需要有详细的步骤。例如先怎么怎么样做,再怎么怎么样做
-
声明式编程:更加注重结果,直接说把这书籍里的评分大于 8 分的书过滤出来给我。
3. left-pad 事件背后的代码规范
-
如何正确编程? 直接引入数量庞大的npm模块来完成需求,可以称作编程吗?
-
编程到底应该关注什么?
-
代码风格
-
代码质量和效率(性能)