ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何告别糟糕的JavaScript 做法,几个步骤即可让你避免错误的做法

2023-01-01 15:09:42  阅读:130  来源: 互联网

标签:JavaScript 编程 Java icode9 浏览器 函数 测试


当我们迈出进入美妙的编程世界的第一步时,我们就会亲眼看到它为数百万人所做的事情。多亏了编程,许多人的生活变得更加轻松,只需在他们的设备上按下几个键(这很神奇)。

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

编程中有一些小习惯会对我们编写的代码和最终创建的产品产生持续的负面影响。我亲身经历过这些问题。重要的是要分享它们是什么以及为什么要不惜一切代价避免它们。

1. 使用 var 代替 let 和 const

是时候告别使用 var 了。

出于以下原因,您应该只使用 let 和 const:

● 范围更清晰(大括号之间)。

● 它不创建全局对象。

● 如果您重新声明错误,它会标记错误。

 使用 var 而不是 let 和 const

除非您使用的是旧版浏览器,例如心爱的 IE11,否则放弃 var 符合您的最佳利益。Let 和 const 将成为你未来最好的朋友。

2.使用注释解释代码

注释是我们构建软件时的一个基本部分,它们帮助我们更好地理解我们正在阅读的代码,但我们不能陷入一步步解释我们的代码做什么的错误,我们必须创建易于理解的代码阅读和评论应该只提供上下文。

以下是一些提示和提醒,可帮助您像专业人士一样编写代码注释:

● 避免重复评论;不要写你做什么,写你为什么这样做。

● 描述性变量/函数/类名优于描述性注释。

● 尽可能总结;如果不是绝对必要,请不要写段落。

● 尝试始终使用相同的语言和风格的评论。

● 随着时间的推移,注释通常不会维护(修改)代码。

3.使用==代替===

首先要了解的是,尽管它们在视觉上非常相似,但它们做的事情却不同:第一个称为常规相等运算符 (==),第二个称为严格相等运算符 (===)。

常规相等运算符 (==) 仅检查操作数是否相似,这可能会导致一些令人不快的意外。

  

严格相等运算符 (===) 始终检查操作数是否具有不同的类型和值,以及它们是否完全相同。

 

4. 忘记使用可选链

可选的链接运算符 (?) 允许您读取位于连接对象链深处的属性值,而无需检查链中的每个引用。

这有助于我们在尝试访问不存在的属性时避免错误。例如,假设我们有一个 Pokémon 对象,其中包含该 Pokémon 的信息。

当我们想要访问一个未定义的属性时,例如在本例中,访问属性“攻击”Javascript 将产生一个错误,我们的应用程序将中断。当使用可选链 (?) 时,Javascript 会告诉我们该属性未定义但不会产生任何错误。从长远来看,考虑这些有时我们无法控制的错误类型会产生很大的不同。

  忘记使用可选链

5. 不使用魔法字符串和魔法数字

幻数或幻数字符串是直接在代码中使用的数字或字符串,它们通常没有明确的上下文但确实有目的。最好将这些值分配给常量,否则它们会变得难以理解和调试。

  不使用魔术字符串和魔术数字

6. API调用错误处理不当

我们应该始终在 async/await 中使用 try/catch 来处理错误。

如果我们不处理我们承诺中的错误,我们的应用程序很可能会爆炸,相信我,我们不希望这种情况发生。

  不正确地处理 API 调用错误

7. 使用对象作为单个参数

在声明一个对象需要多个值的函数时,最好使用多个输入参数而不是单个对象输入。这可以帮助我们做几件事:

首先,通过从一开始就知道我们的函数需要哪些参数,它使我们的代码更易于阅读。

其次,它使功能更容易测试,这两件事一起帮助我们的产品随着时间的推移是可维护的。此外,作为一个加号,它提高了我们应用程序的性能,因为它避免了收集垃圾或创建不必要的对象参数。

另一个好处是,如果您使用 TypeScript 并且您有多个参数,则更容易定义参数的接口以受益于类型检查和自动建议,从而避免错误。

 

8. 忘记缩写的力量

我们都想知道变量是否存在,或者它是否包含除 null 或 undefined 之外的某种值。正因为如此,我们通常最终会进行这种类型的超长验证:

  忘记缩写的力量

缩写帮助我们避免这个问题。以更简单和更优雅的方式,上面的代码可以简化为以下代码:

 

结论

编写干净的代码永远是我们的责任。根据我作为开发人员的经验,我了解到拥有可维护且易于阅读的代码将为您和您的团队节省很多时间。

标签:JavaScript,编程,Java,icode9,浏览器,函数,测试
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有