Day 3 -- 浅谈JavaScript | 青训营笔记

89 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

本堂课重点内容

  1. JavaScript编码原则
  2. JavaScript代码质量

JavaScript编码原则

  • 各司其职
HTMLCSSJavaScript
StructuralPresentationalBehavioral

尽量不要用JS去做CSS的该做的事,反之也是,这样就违背了各司其职的原则,会不便于在其他人来扩充需求或者修改代码,让代码“不漂亮”。

  • 组件封装

    • 什么是组件?组件是指Web页面上抽出来一个个包含模板(HTML)、功能(JS)和样式(CSS)的单元。好的组件具备封装性、正确性、扩展性、复用性。

    • 实现组件的步骤:结构设计,展现效果,行为设计

  • 过程抽象
    用来处理局部细节控制的一些方法,也是函数式编程思想的基础应用。

    • 高阶函数 截屏2023-01-17 19.09.12.png 高阶函数是以函数为参数,以函数作为返回值的函数,常用于作为函数装饰器。

JavaScript命令式和声明式

我们日常的代码分为命令式(Imperative)和声明式(Declarative),声明式更突出工作意图,而命令式更突出流程。

// This is Imperative
const arr = [2, 4, 6, 8];
const doubled = [];
for (let i = 0; i < arr.length; i++)
  doubled[i] = arr[i] * 2
// This is Declarative
const arr = [2, 4, 6, 8];
const doubled = arr.map(n => n * 2);

JavaScript代码质量优化之路

写代码最该关注什么?
风格、效率、使用场景、设计、安全…

分红包

方法一:切西瓜法

原理之前:先检测分的钱够不够每个人至少0.01元。

原理:将要分的钱随机分成两份,再选取较大的一份继续分,之后每次都分所有“西瓜片”中最大的一份,直到给所有人分完。

截屏2023-01-17 20.24.44.png

特点:分的比较平均,不够刺激

方法二:抽牌法

原理之前:先检测分的钱够不够每个人至少0.01元。

原理:先将要分的钱变为一个数列,在其中插入相应多的分隔符,每个人取其中一份。

截屏2023-01-17 20.28.47.png

特点:出现较大红包的概率upupup~