JS入门与提升 | 青训营笔记

61 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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 事件背后的代码规范
  1. 如何正确编程? 直接引入数量庞大的npm模块来完成需求,可以称作编程吗?

  2. 编程到底应该关注什么?

  • 代码风格

  • 代码质量和效率(性能)