当我们迈出进入编程世界的第一步时,会看到它正为数以千万人所做的事情。有了编程,它让许多人的生活变得更轻松,只需在设备上按下几个键就能把事情干好。
编程是另一种能力,但正如我这个叔叔对他的侄子彼得帕克所说的那样,“能力越大,责任越大。” 在编程世界中,开发者最大的责任是确保自己编写的代码既易于测试,又能随着时间推移,保持可维护性。“
但是,在编程中会有一些非良好的习惯,会对我们编写的代码和最终创建的产品产生持续的影响。
我亲身经历过这些问题。重要的是要分享它们是什么以及为什么,要不惜一切代价避免它们。
是时候告别使用 var 了。
基于以下原因,我们应该只使用 let 和 const:
● 范围更清晰(大括号之间)。
● 它不能创建全局对象。
● 如果重复声明,它会标记为错误。
除非你用的是还是旧版本的浏览器,例如心爱的IE11,否则放弃var符合你和大家的最佳利益。Let和const将成为你最好的朋友。
2.请用代码注释
注释是我们构建软件时的一个基本部分,它帮助我们更好地理解正在阅读的代码,但又不能陷入一步步解释代码做什么的错误,我们必须创建易于理解和阅读的代码,注释应该只提供上下文即可。
以下是一些提示和提醒,可帮助你和专业人士一样编写注释:
● 避免重复注释:不要写你正做什么,写你为什么这么做。
● 描述性变量/函数/类名要优于描述性注释。
● 尽可能总结;如果不是绝对必要,请不要写一大段落。
● 尝试始终使用相同的语言风格的注释。
● 随着时间的推移,注释通常会帮助代码维护。
3.使用==代替===
首先请要注意的是,这两个等号在视觉上非常相似,但它们做的事情却完全不同:第一个称为常规相等运算符 (==),第二个称为严格相等运算符 (===)。
常规相等运算符 (==) 仅检查操作数是否相似,这可能会导致一些恼人的异常。
严格相等运算符(===)始终检查操作数是否具有不同的值和类型,还有它们是否完全相同。
4.慎用可选链接符
可选的链接运算符(?)允许你读取位于连接对象链深处的属性值,而无需检查链中的每个引用。
这会帮助我们在尝试访问不存在的属性时避免错误。例如,假设有一个 Pokémon 对象,其中包含该 Pokémon 的信息。
当我们想要访问一个未定义的属性时,例如本例中,访问属性时Javascript将产生一个错误,应用程序将中断运行。当使用可选链 (?) 时,Javascript 会告诉我们该属性未定义但不会产生任何错误。从长远来看,考虑这些有时我们无法控制的错误类型会产生很大的不同。
5. 不用魔法字符串与魔法数字
魔法数字和魔法字符串指的是直接在代码中使用的数字或字符串,它们通常没有明确的上下文,但确实有目的。最好将这些值先分配给常量,否则后续它们会变得难以理解,也很不容易调试。
6. API调用错误处理不当
应该始终在async/await中加入 try/catch 段来处理错误。
如果我们不承诺处理运行时的错误,那么应用程序很可能会崩溃。请相信我,我们都不希望这种情况发生。
7. 使用对象作为单个参数
在声明一个对象需要多值函数时,最好用多个输入参数而不是单个对象输入。这样的好处是,它能帮我们做几件事:
首先,从一开始就知道函数需要哪些参数,它让我们的代码更加易读。
其次,这让函数更容易测试,这两个加在一起,帮助我们的产品随着时间推移也是可维护的。此外,再作为一个加号,它提高了我们应用程序的性能,因为它避免收集垃圾或创建不必要的对象参数。
另外一个好处是,如果使用 TypeScript 并且函数有多个参数,则更容易定义参数的接口以受益于类型检查和自动建议,以避免出现错误。
8. 勿忘缩写的力量
我们有时会想知道变量是否存在,或者它是否包含除null或undefined的某种值。所以,我们通常会进行这种类型的超长条件验证:
而缩写能够帮助我们避免这个问题。以更简单和优雅的方式展示给用户。那么,上面的代码可以简化为以下的样式:
结论
编写整洁代码永远是开发者的责任。根据我作为开发者的经验,如果有可维护且易于阅读的代码将为你和所属的团队节省很多时间。
请各位记住,人们阅读代码的时间要多于编写代码的时间。希望以上这些小技巧能帮助你完成创造神奇,还有开发令人惊叹产品的伟大任务。
如果大家有任何建议,请在评论中分享。我们一起持续成长~
编译:场长
原文:
https://blog.gogrow.dev/say-bye-bye-to-bad-javascript-practices-5971688ba80a
本文为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。