这是我参与第五届青训营伴学笔记创作活动的第四天!
今天老师带我们回顾2016 年 3月的 left-pad事件,让我们更好的去写JavaScript。
主要内容
- 代码写作关注事项
- left-pad 事件背后的代码规范
代码分析
需要根据自己的使用场景去考虑代码,并不能单纯的因为代码风格去判断好与坏,这个代码如果用循环去写时间花费会更多。
所以,我们写代码最应该关注使用场景,从使用场景出发。
left-pad事件
补齐字符对齐,如果是五位的话需要在1前面添加四个零。
当性能优化对于这个场景意义不大时,即可以达到忽略的程度,我们更多的要去从可读性方面提高。
接下来,老师带领我们通过三个代码实践对JavaScript代码进行总结与升华。
第一个代码实践:交通灯
第一个版本的代码嵌套层数多,可读性差,也不易于去维护。
因为有三个灯去转化,有三种不同的状态,所以我们可以进行数据抽象,对交通灯的三种状态进行抽象,持续时间数据等等,形成状态列表。第二个版本的代码可读性高了,也易于理解和维护了。
第三个版本的代码通过过程抽象的方法。同时,这个过程抽象我们也可以扩展到其他领域,有着极好的扩展性。
第二个代码实践:洗牌
首先我们先随机抽出一张牌,把它换到最后面的位置,然后再从剩下的牌中抽取放到最后的位置。
第三个代码实践:分红包
我们可以使用抽牌法!我们可以把它看成一个数列,在数列里面随机的去插入即可。然后进行排序,用取出的值减去前面一个的值即可得到要插入的值。时间复杂度为O(n) ,这个方法会有“刺激”玩法,会有特别大的红包。
还是要加强自己的算法锻炼!多学习!多熟悉!