检查数组长度作为真值和检查其是否大于0之间有区别吗?换句话说,使用以下哪种语句之一有任何理由:
var arr = [1,2,3];
if (arr.length) {
}
if (arr.length > 0) {
}
检查数组长度作为真值和检查其是否大于0之间有区别吗?换句话说,使用以下哪种语句之一有任何理由:
var arr = [1,2,3];
if (arr.length) {
}
if (arr.length > 0) {
}
检查数组的长度作为真值与检查其是否> 0之间是否有区别?
由于arr.length
的值只能是0
或更大,而且0
是唯一计算为false
的数字,所以没有区别。
总的来说,对于n < 0
,Boolean(n)
和Boolean(n > 0)
产生不同的结果。
换句话说,有没有理由使用其中一个语句而不是另一个语句?
只有与代码可读性和理解相关的原因,而不涉及行为方面。
if (array.length)
,但我知道其他人更喜欢 if (array.length > 0)
。 - roobyarray.length
比array.length > 0
更快且更短。你可以看到它们速度上的差异:http://jsperf.com/test-of-array-length
if(array.length){...}
类似于if(0){...}
或if(false){...}
array.length
比array.length > 0
运行得更慢。不确定为什么会这样,因为直觉上似乎它应该做得更少。 - HannaBoolean(array.length)
的操作,当 > 0
不出现时。在 JavaScript 中有很多不同的值可以是 true 或 false,并且它们都需要检查(null、false、undefined、0、'' 等)。 - zeachcoif
圆括号之间的任何内容都将评估为truthy或falsey值。if (arr.length > 0) {
}
if (arr.length) {
}
if(arr[0])
也可以正常工作。 - dandavis