将indexOf结果与-1,“!=”或“>”进行比较时,首选运算符是什么?

时间:2011-01-02 13:19:18

标签: javascript

将indexOf的结果与-1,“!=”或“>”进行比较时,首选运算符是什么?有什么不同吗?

3 个答案:

答案 0 :(得分:5)

这两个都可以,你只关心它不是-1就个人而言,我更喜欢!=,因为我说它明确地某种方式......这就是我们正在执行的检查。例如:

if(arr.indexOf("thing") != -1)

它明确检查该单个值,即未找到时获得的唯一-1结果。使用>,您正在检查任何其他值...我发现这更明确,只需使用更清晰的为您

我避开>的另一个原因是,在StackOverflow上太多次(在问题答案中)我看到if(arr.indexOf("thing") > 0)这几乎是从不正确的检查。

答案 1 :(得分:2)

作为Nick said,两者都没问题。我更喜欢>= 0,因为那时我正在编写一个正面的代码:

index = str.indexOf('foo');
if (index >= 0) {
    // Do something with `index`
}
else {
    // 'foo' wasn't found
}

答案 2 :(得分:1)

我会说!=。你实际上是自己说的:

  

将indexOf的结果与-1

进行比较

此外,!=>快。