Ben*_*Ben 12 javascript arrays
将数组的长度检查为真值并检查它是否> 0是否有任何区别?
换句话说,有没有理由使用其中一个语句而不是另一个:
var arr = [1,2,3];
if (arr.length) {
}
if (arr.length > 0) {
}
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 12
将数组的长度检查为真值并检查它是否> 0是否有任何区别?
由于值arr.length只能是0或者更大,因为0它是唯一的计算数false,所以没有区别.
在一般情况下,Boolean(n)并Boolean(n > 0)产生了不同的结果n < 0.
换句话说,是否有任何理由将这些陈述中的一个用于另一个陈述
只有与代码可读性和理解相关的原因,而不是行为.
在javascript中,它们没有任何区别.
最后,无论是在之间if括号将评估为一个truthy或falsey值
对于所有可能的falsey值,请参阅JavaScript中的所有falsey值
如果您希望更清晰明确,请使用
if (arr.length > 0) {
}
Run Code Online (Sandbox Code Playgroud)
如果你想减少冗长,请使用
if (arr.length) {
}
Run Code Online (Sandbox Code Playgroud)
array.length比最快和短array.length > 0。您可以看到它们的速度差异:http : //jsperf.com/test-of-array-length
if(array.length){...}类似于if(0){...}或if(false){...}