2014-04-30 41 views
0

这是出于好奇。在下面的两个检查中,对于JavaScript中的非空数组,哪一个更可取?为什么?哪个更好的非空数组检查条件,为什么?

  1. if(arr.length != 0)
  2. if(arr.length > 0)

因为数组长度不能为负,到现在为止一直在使用我或者没有真正困扰了。

谢谢!

+5

包含'if(arr.length)'也:-) – thefourtheye

+1

我个人认为'if(arr.length> 0)'是可取的。你不关心没有元素的情况,你已经知道他们不能有负面因素。你真正关心的是当数组有多个元素(即长度> 0) –

+0

让人有很多的感觉猎人。看起来这里的每个人都与当前的问题处于同一页面!谢谢! – Kumar

回答

1

我想这取决于你;你喜欢哪个?有不应该不会有任何(明显)差异“性能明智”(所以避免微优化,根,邪恶和所有这些事情)。

个人,对我来说那是,我发现arr.length > 0更清楚(more than 0 items in the array传达的理念VS not 0 items in the array!运营商(更)容易被忽视我猜,可能会引起混乱而可能阅读代码的分配,也使得(非常少但仍然)不得不“表达”的心理开销)。

话虽如此,任何值得他们的盐的开发人员都不应该有任何问题。

+0

在愿意提出这个问题之前,我觉得倾向于在代码中的某个地方使用“大于零”的条件,与您的思路类似。现在猜猜我也可以依靠专家意见。感谢Roblll。 :) – Kumar

+0

我被称为专家! ♥我的专家徽章在哪里? :P – RobIII

+0

继续回答问题并通过重复编辑传播您的知识!这是关键! :P – Kumar

1

if (arr.length)正在检查是否有一个长度属性,如果它检查长度(如果一个数字)是否为零。 if (arr.length != 0)完全等于if (arr.length)

if (arr.length > 0)将包括一个数学运算(或类似的东西),因为你不仅检查长度的存在,如果它可能为零,你也检查大小。

在这种情况下,if (arr.length > 0)更精确,但都相同。