当前位置: 首页 > 科技观察

你掌握的10个JavaScript技巧和实践,赶快收藏起来吧!

时间:2023-03-15 08:35:09 科技观察

废话少说,直接安排。1.使用数字分隔符这是我需要处理大数字时最常用的运算符之一。当数字中使用分隔符时(只有一个_),它看起来比没有分隔符的数字更好。例如:letnumber=98234567可以写成letnumber=98_234_567,也适用于任何其他基数。constbinary=0b1000_0101;consthex=0x12_34_56_78;一些注意事项:不能在前导0之后使用。不允许在数字末尾使用letnum=0_12。letnum=500_2。始终使用分号用分号结束行是一种很好的做法。如果您忘记了,请不要警告,因为在大多数情况下它将由JavaScript解析器插入,但不鼓励依赖自动分号插入(ASI)。Google、Airbnb和jQuery的JS风格指南也推荐使用分号结束行。3.不要忘记var当你第一次给一个变量赋值时,确保你没有给一个未声明的变量赋值。分配给未声明的变量会自动导致创建全局变量。避免全局变量?全局变量很容易被其他脚本覆盖。例如,如果您的应用程序的两个独立部分定义了一个名称相同但用途不同的全局变量,则可能会导致不可预测的错误,并且调试此类问题可能是一种可怕的体验。通常函数中的变量应该是局部变量,以便在您完成函数执行后释放它们。4.Delete与Splice使用splice而不是delete来从数组中删除一个项目。使用delete删除对象的属性,但不会重置索引数组或更新其长度。删除>myArray=['a','b','c','d']["a","b","c","d"]>deletemyArray[0]true>myArray[0]未定义请注意,它实际上并没有被设置为未定义的值,而是该属性已从数组中删除,使其看起来未定义。您可以通过在控件中打印myArray来了解这一点。SpliceSplice()实际上是移除元素,重置索引,改变数组的长度。>myArray=['a','b','c','d']["a","b","c","d"]>myArray.splice(0,2)["a""b"]>myArray["c","d"]delete方法应该用于删除对象属性。5.mapvsforloop使用map()函数遍历数组varsquares=[1,2,3,4].map(function(val){returnval*val;});//[1,4,9,16]**不变性**-原始数组不会受到影响。这在其他地方仍需要原始数组的情况下很有用。for循环当然也可以实现,但这需要更多的代码,并且需要更新我们的新数组作为循环操作的一部分。另一方面,map()可以保持干净,因为你只需要在一个范围内工作并且仍然保持不变性。更简洁的代码——在做同样的事情时,几乎总是可以用比for更少的代码编写map。它有时可以清楚地写在一行上,而for则需要至少两行或通常三行,包括括号。此外,范围隔离和减少所需变量的数量以及减小的大小都使代码客观上更清晰。6.四舍五入的数字toFixed()方法使用定点符号来格式化一个值。varpi=3.1415;pi=pi.toFixed(2);//piwillbeequalto3.14注意:toFixed()返回的是字符串而不是数字。7.使用console.tabletable=[{state:"Texas"},{state:"NewYork"},{state:"Chicago"}]console.table(table)可以使用console.table来显示对象的形式表。8.避免在循环中使用try-catch。每次执行catch子句时,try-catch结构都会在当前作用域内创建一个新的变量,并将捕获到的异常对象赋值给一个变量。varobject=['foo','bar'],i;for(i=0,len=object.length;i=0){}includes():if([1,'one',2,'two'].includes(value)){}10.双精度非位运算符(~~)双精度非位运算符可以看作是Math.floor()方法的替代品。constfloor=Math.floor(6.8);//6也可以这样写:constfloor=~~6.8;//6双非位运算符方法只适用于32位整数。因此,对于任何高于该值的数字,建议使用Math.floor()来得出最终建议——不要使用随意的编码风格。必须有一个执行标准。~完了,我是小智,整理好了,准备玩LoL,记得点赞关注,发财啦~作者:ApoorvTyagi译者:前端小智来源:devjavacript-tips-and-最佳实践48ma