这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
本堂课重点内容
1.代码写作关注事项
2.Leftpad事件
3.JavaScript代码质量优化方法
1.代码写作关注事项
- 风格
- 效率
- 约定
- 使用场景
- 设计
2.Leftpad事件
这个几年前的事件是说由于left-pad 工具模块被作者从 NPM 上撤下,所有直接或者间接依赖这个模块的 NPM 包就忧伤的挂掉了,包括 babel 这样的热门项目,引起许多开发者的吐槽。
-
使用leftpad库是为使多个数字为了保持整齐,前面补齐0,使数字的位数一样。
-
原本的这个函数时间复杂度n,性能不好。
-
有人改写优化使代码更简洁,但由于使用量小,因此性能提高的意义并不大甚至可以被忽略。
月影老师总结:更多地还是从代码可读性的角度来考虑代码性能的优化
3.JavaScript代码质量优化方法
案例一:交通灯状态切换
可用三种方案
-
写法一、数据抽象
即将交通灯状态抽象出来,写一个存放状态的状态列表
-
写法二、过程抽象
-
写法三、异步+函数式
案例二:判断一个数是否是四的幂
首先明确四的幂数字特点,二进制:1后面跟n个00
所以要把数字转换成二进制数,就可以利用四的幂的二进制数末尾为00的特点
进行正则判断
案例三:洗牌
案例四:分红包
- 写法一:切西瓜法丨时间复杂度O(m*n),不很好,一般分的人少所以也可以
- 写法二:抽牌法丨 时间复杂度O(n),但是空间复杂度不好(10000数列)
个人总结
结论 :在进行JavaScript代码编写时,应根据场景考虑代码的可读性、拓展性,适度抽象,同时要考虑多种执行方案,使代码更简洁高效。