将indexOf的结果与-1,“!=”或“>”进行比较时,首选运算符是什么?有什么不同吗?
答案 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
进行比较
此外,!=
比>
快。