发布于 2026-01-05 6 阅读
0

JavaScript 使用技巧和最佳实践

JavaScript 使用技巧和最佳实践

在本文中,我将分享 10 个我遵循并认为有用的 JavaScript 技巧、窍门和最佳实践。

1. 使用数字分隔符

这是我处理大数字时最常用的运算符之一。在数字中使用分隔符(例如下划线“_”)比不加分隔符的数字看起来更美观。

例如:

let number = 98234567
Enter fullscreen mode Exit fullscreen mode

到 ⬇

let number = 98_234_567
Enter fullscreen mode Exit fullscreen mode

它也适用于任何其他进制:

const binary = 0b1000_0101;
const hex = 0x12_34_56_78;
Enter fullscreen mode Exit fullscreen mode

需要注意的几点

  • 不能在前面加 0 之后使用。
let num= 0_12
Enter fullscreen mode Exit fullscreen mode
  • 不允许出现在数字字面量的末尾。
let num= 500_
Enter fullscreen mode Exit fullscreen mode

2. 始终使用分号

使用分号作为行尾符是一种良好的编程习惯。如果您忘记添加分号,系统不会发出警告,因为大多数情况下 JavaScript 解析器会自动插入分号,但我们并不鼓励依赖自动分号插入 (ASI) 功能。

这甚至被纳入了谷歌AirbnbjQuery 的Javascript 风格指南中。

想了解过度依赖人工智能可能带来的后果,请查看我几个月前分享的第四期简报。最后一节我用一个例子进行了解释。

3. 别忘了“var”

第一次给变量赋值时,务必确保不要给未声明的变量赋值。

给未声明的变量赋值会自动创建一个全局变量。避免使用全局变量

全局变量很容易被其他脚本覆盖。例如,如果应用程序的两个不同部分定义了同名但用途不同的全局变量,则可能导致无法预料的错误,而且调试这类问题会非常棘手。

一般来说,你应该尽量限制代码的作用域,减少全局作用域的使用。脚本中使用的全局变量越多,与其他脚本一起使用的可能性就越小。

通常情况下,函数中的变量应该是局部变量,这样在函数退出时它们就会消失。

“通过将您的全球标识简化为一个名称,您可以显著降低与其他应用程序、组件或库发生不良交互的可能性。”——道格拉斯·克罗克福德

4. 删除与拼接

请使用 `splice` 而不是 `delete` 来从数组中删除元素。使用 `delete` 会删除对象属性,但不会重新索引数组或更新其长度。这会导致数组看起来像是未定义。

删除

> myArray = ['a', 'b', 'c', 'd']
  ["a", "b", "c", "d"]
> delete myArray[0]
  true
> myArray[0]
  undefined
Enter fullscreen mode Exit fullscreen mode

请注意,它实际上并没有被设置为 undefined,而是从数组中移除了该属性,使其看起来像 undefined。Chrome 开发者工具在记录数组时会打印“empty”,从而清晰地表明了这一点。

拼接

Splice()实际上,它会删除该元素,重新索引数组,并改变数组的长度。

> myArray = ['a', 'b', 'c', 'd']
  ["a", "b", "c", "d"]
> myArray.splice(0, 2)
  ["a", "b"]
> myArray
  ["c", "d"]
Enter fullscreen mode Exit fullscreen mode

应该使用 delete 方法删除对象属性。

5. map 循环与 for 循环

使用 map() 函数方法遍历数组元素。

var squares = [1,2,3,4].map(function (val) {  
    return val * val;  
}); 

// squares will be equal to [1, 4, 9, 16]
Enter fullscreen mode Exit fullscreen mode

**不可变性** — 原始数组不会受到影响。这在其他地方仍然需要原始数组的情况下具有潜在优势。虽然也可以编写不更新原始数组的 for 循环,但这需要更多代码,并且需要在循环操作中更新新数组。另一方面,map() 函数使代码更简洁,因为只需在一个作用域内操作即可保持不可变性。

更简洁的代码——在执行相同操作时,map 几乎总是比 for 语句的代码量更少。有时 map 甚至可以清晰地写在一行,而 for 语句至少需要两行,通常需要三行(包括大括号)。此外,作用域隔离、所需变量数量的减少以及代码体积的减小,都使得代码在客观上更加简洁。

6. 数字的四舍五入

toFixed() 方法将数字四舍五入为指定位数的小数。

var pi =3.1415;
pi = pi.toFixed(2);  // pi will be equal to 3.14
Enter fullscreen mode Exit fullscreen mode

注意:toFixed()返回的是字符串,而不是数字。

7. 使用 console.table

您可以使用console.table它以表格格式显示对象:

table=[{state: "Texas"},{state: "New York"},{state: "Chicago"}]
console.table(table)
Enter fullscreen mode Exit fullscreen mode

表格.png

8. 避免在循环中使用 try-catch 语句

try-catch 结构会在运行时在当前作用域中创建一个新变量,每次执行 catch 子句时,都会将捕获的异常对象赋值给一个变量。

var object = ['foo', 'bar'], i;  
for (i = 0, len = object.length; i <len; i++) {  
    try {  
        // do something that throws an exception 
    }  
    catch (e) {   
        // handle exception  
    } 
}
Enter fullscreen mode Exit fullscreen mode

到 ⬇

var object = ['foo', 'bar'], i;  
try { 
    for (i = 0, len = object.length; i <len; i++) {  
        // do something that throws an exception 
    } 
} 
catch (e) {   
    // handle exception  
} 
Enter fullscreen mode Exit fullscreen mode

当发生错误时,第一种方法允许循环继续执行,而第二种方法则会退出循环。如果代码抛出的异常不足以严重到导致整个程序停止运行,则第一种方法更为适用

9. 多重条件检查

对于多值匹配,我们可以将所有值放入数组中使用indexOf()orincludes()方法。

if (value === 1 || value === 'one' || value === 2 || value === 'two') { 

} 
Enter fullscreen mode Exit fullscreen mode

到 ⬇

indexOf():

if ([1, 'one', 2, 'two'].indexOf(value) >= 0) { 

}
Enter fullscreen mode Exit fullscreen mode

包含():

if ([1, 'one', 2, 'two'].includes(value)) { 

}
Enter fullscreen mode Exit fullscreen mode

10. 双非按位运算符 (~~)

双非按位运算符是 Math.floor() 方法的替代方法。

const floor = Math.floor(6.8); // 6 
Enter fullscreen mode Exit fullscreen mode

到 ⬇

const floor = ~~6.8; // 6
Enter fullscreen mode Exit fullscreen mode

双 NOT 按位运算符方法仅适用于 32 位整数。因此,对于任何大于 32 位的数字,建议使用 Math.floor() 函数。

结论

我知道还有很多其他的技巧、窍门和最佳实践,所以如果您有任何补充,或者对我分享的内容有任何反馈或更正,请随时在下面的评论中添加。

此外,你永远不可能只通过一篇文章就学会所有东西。尝试搜索相关概念,阅读多篇文章,通过编写项目来实践代码,这才是学习的唯一途径。

最后一点建议——不要使用随意的编码风格。要强制执行标准编码。

阅读风格杂乱无章的代码时,你永远无法预料会看到什么。因此,整个团队和应用程序代码库必须采用统一的编码风格,这能显著提高代码的可读性。


参考


刚开始学习网页开发?💻

结账 ▶ HTML 到 React:终极指南

这本电子书是一本全面的指南,它通过大量易于理解的示例和行之有效的路线图,教会你成为一名网页开发人员所需的一切知识。

它包含👇

✅ 直奔主题的解释

✅ 简单的代码示例

✅ 50 多个有趣的项目创意

✅ 3份秘密资源清单

✅ 额外面试准备

你甚至可以查看本书的免费样章。

这里是全套书籍的链接,可享原价六折优惠⬇

电子书.png

文章来源:https://dev.to/apoorvtyagi/javascript-tips-and-best-practices-48ma