作者:ApoorvTyagi译者:前端小智来源:dev有梦想,有干货,微信搜索【大千世界】关注这个大清早还在刷碗清洁智慧。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。废话不多说,直接安排。1.使用数字分隔符这是我需要处理大数字时最常用的运算符之一。当数字中使用分隔符时(只有一个_),它看起来比没有分隔符的数字要好。例如:letnumber=98234567可以写成letnumber=98_234_567并且它也适用于任何其他基数。常量二进制=0b1000_0101;十六进制常量=0x12_34_56_78;几点注意:不能在前导0之后使用。letnum=0_12不允许在数字的末尾。让num=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]undefined请注意,它实际上并没有设置为undefined的值,而是从数组中删除了该属性,使其看起来未定义。您可以通过在控件中打印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);//pi将等于3.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
