这是出于好奇。在下面的两个检查中,对于JavaScript中的非空数组,哪一个更可取,为什么?
if(arr.length != 0)
if(arr.length > 0)
因为数组长度永远不会是负数,所以到目前为止我一直在使用它们而没有太多麻烦。
谢谢!
答案 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)
更精确,但两者都是一样的。