我的意思是更概念性,而不是indexOf()
算法的哪一部分专门做到了。
在我看来,如果我要在字符串中搜索一个单词;
var foo = bar.indexOf("fizz");
if (foo) {...}
只有从null
返回indexOf()
时才可以。但是,为了使上述代码有效,我必须写;
var foo = bar.indexOf("fizz");
if (foo !== -1) {...}
我看不到返回-1
而不是null
的任何好处。有人能给我一个更有益的例子吗?
答案 0 :(得分:1)
如果元素存在于索引0中,虽然有结果,但if (foo)
不会通过,所以无论如何都不能使用它。
至于它返回-1
的原因,它可能与其他类型语言行为相匹配。这样,它将始终返回integer
。
答案 1 :(得分:0)
就像问substring()
为什么不返回boolean
。
从语义上讲,索引必须是integer
,因此返回null
并且你的方法名称表明它应该返回一个数字是没有意义的。
此外,如果它返回null
,它们将等同于0
(因为两者都是假值)导致开发人员产生一些无辜/无意的错误,因此几乎没有收获从此方法返回null。