跟着月影学Javascript(下)| 青训营笔记

72 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第4天,下面跟我一起看看青训营第三天下半部分讲了什么吧~

主要介绍的是Javascript的一些代码规范,并用案例的形式向大家展示,非常生动形象。

1.写代码应该注意什么:风格、效率、约定、使用场景等。

2.代码规范与建议

  • 变量名:驼峰法命名,区分大小写,第一个字符不能是数字;变量命名长度尽可能短,尽量在变量名中体现其用途。
  • 代码缩进:通常使用4个空格符号缩进代码块(不推荐使用TAB因为不同编辑器TAB的解析不同)
  • 简单语句规则:一条语句用分号作为结束符
  • 复杂语句规则:左花括号放在第一行结尾;左花括号前添加一个空格;右花括号单独放在一行;用分号结束一个复杂的声明
  • 对象规则:将左花括号与类名放在同一行;冒号与属性值间有个空格;字符串使用双引号,数字不需要;最后一个属性-值对后面不要添加逗号。
  • 每行代码字符小于80个
  • 使用注释来解释代码的目的和工作原理
  • 尽量减少全局变量的使用,避免命名冲突。
  • 使用异常处理来保护代码免受错误的影响;使用单元测试来测试代码的正确性,并且随时进行代码的重构和优化。
  • 使用版本控制工具(如 git)来管理代码的版本。

3.案例

  • 交通灯状态:方法一用到数据抽象;方法二用到过程抽象,相比一更加简洁;最好的方式则是使用异步/函数处理
  • 是否是4的幂:最优的解决方案为转化为二进制,由于4的幂的二进制末尾都是00,以此判断
  • 洗牌问题:习惯性使用的Math.random()会导致数字小的出现频率更高,导致概率不相等。因此我们考虑使用生成器函数来提高效率
  • 分红包问题:一种解决方法是类似分西瓜那样,每次拆分最大的部分;第二种方法个人觉得非常精妙——类似使用抽牌器:我们假设要分出n个红包,我们随机抽出(n-1)个数值,然后进行排序,接着作为红包分割符进行切分。