慢学JS 下 | 青训营笔记

25 阅读2分钟

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

本堂课重点内容

1.代码写作关注事项

2.Leftpad事件

3.JavaScript代码质量优化方法


1.代码写作关注事项

  • 风格
  • 效率
  • 约定
  • 使用场景
  • 设计

2.Leftpad事件

这个几年前的事件是说由于left-pad 工具模块被作者从 NPM 上撤下,所有直接或者间接依赖这个模块的 NPM 包就忧伤的挂掉了,包括 babel 这样的热门项目,引起许多开发者的吐槽。

  • 使用leftpad库是为使多个数字为了保持整齐,前面补齐0,使数字的位数一样。

  • 原本的这个函数时间复杂度n,性能不好。

  • 有人改写优化使代码更简洁,但由于使用量小,因此性能提高的意义并不大甚至可以被忽略。

image.png

月影老师总结:更多地还是从代码可读性的角度来考虑代码性能的优化

3.JavaScript代码质量优化方法

案例一:交通灯状态切换

可用三种方案

  • 写法一、数据抽象

    即将交通灯状态抽象出来,写一个存放状态的状态列表

  • 写法二、过程抽象

  • 写法三、异步+函数式

案例二:判断一个数是否是四的幂

首先明确四的幂数字特点,二进制:1后面跟n个00

所以要把数字转换成二进制数,就可以利用四的幂的二进制数末尾为00的特点进行正则判断

案例三:洗牌

案例四:分红包

  • 写法一:切西瓜法丨时间复杂度O(m*n),不很好,一般分的人少所以也可以
  • 写法二:抽牌法丨 时间复杂度O(n),但是空间复杂度不好(10000数列)

个人总结

结论  :在进行JavaScript代码编写时,应根据场景考虑代码的可读性、拓展性,适度抽象,同时要考虑多种执行方案,使代码更简洁高效。