17611538698
webmaster@21cto.com

JS 开发者,如何和糟糕的编程习惯说 ByeBye?

前端 0 892 2022-12-02 08:02:33

图片

当我们迈出进入编程世界的第一步时,会看到它正为数以千万人所做的事情。有了编程,它让许多人的生活变得更轻松,只需在设备上按下几个键就能把事情干好。

编程是另一种能力,但正如我这个叔叔对他的侄子彼得帕克所说的那样,“能力越大,责任越大。” 在编程世界中,开发者最大的责任是确保自己编写的代码既易于测试,又能随着时间推移,保持可维护性。“

但是,在编程中会有一些非良好的习惯,会对我们编写的代码和最终创建的产品产生持续的影响。

我亲身经历过这些问题。重要的是要分享它们是什么以及为什么,要不惜一切代价避免它们。

1.使用 let 和 const 替 var

是时候告别使用 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

评论