哪个是更好的非空阵列检查条件,为什么?

时间:2014-04-30 13:17:41

标签: javascript arrays

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

  1. if(arr.length != 0)
  2. if(arr.length > 0)
  3. 因为数组长度永远不会是负数,所以到目前为止我一直在使用它们而没有太多麻烦。

    谢谢!

2 个答案:

答案 0 :(得分:1)

我想这取决于你;你喜欢哪个? 不应该赢得任何(明显的)差异"表现方面" (所以要避免微观优化,根,邪恶和所有这些事情。)

就我个人而言,我发现arr.length > 0更清楚地传达了这个想法(more than 0 items in the array vs not 0 items in the array。我猜!运算符(更多)很容易被忽略并且可能会导致混淆,同时可能会将代码作为赋值读取,并且还会导致(很少但仍然)心理上的开销,而不是"而不是"表达式)。

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

答案 1 :(得分:1)

if (arr.length)正在检查是否存在长度属性,是否检查长度(如果是数字)是否为零。 if (arr.length != 0)if (arr.length)完全相同。

if (arr.length > 0)将包含数学运算(或类似的东西),因为您不仅仅检查是否存在长度,如果它可能为零,您还要检查大小。

在这种情况下,if (arr.length > 0)更精确,但两者都是一样的。