Leftpad事故背景引入 | 青训营笔记

216 阅读2分钟

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

一、本节课重点内容

本节课通过回溯2016 年 3 月的 left-pad 事件,引出编码的操作规范,持续对如何写好 JavaScript 进行讲解,重点讲解内容如下:

  1. 代码写作关注事项
  2. left-pad 事件背后的代码规范

二、详细知识点介绍

image.png 首先,老师向我们展示了如下代码段,此代码段的作用是判断一个mat2d矩阵是不是单位矩阵。 如果符合以上的条件的话,这个矩阵就是一个单位矩阵。

单位矩阵格式如下所示:

1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1

image.png

在这段代码中,直接使用比较比使用for循环更加的简洁方便,因为它的数量是已经固定好的,也不需要扩展,是最省时间的,比较for循环来说(用中间变量,然后再索引)。

如果你的代码是一个对性能敏感的,我们需要用高性能的代码来进行运行。

所以对我们来说,看到一个代码,并不可以仅仅凭借着代码本身的内容来判断代码的好与坏,我们还需要根 据我们的代码的使用场景,对这段代码进行评判。

写代码最应该关注什么? image.png 我们普遍认为,使用场景是代码最应该关注的元素。

案例: image.png

如果数字不够5位,在数字前进行“用0”补位,补足5位。

image.png

image.png 优化: image.png 如果此时padLen小了,也就说明此时str.length比我们要补齐的那个那个lengt(len)更大,此时我们直接返回就可以(此时不需要补齐位数)。

而反之,我们就用重复的ch串+str,对数位进行补齐。 用repeat(二次幂的算法--难点) 改掉了while循环(线性),效率得到提升。 image.png

三、总结

我们还是要根据代码的使用场景及各个方面对代码进行评定、优化。 本节课的repeat的使用和逻辑是个难点,我还不够理解它的算法使用规则。