我学习JavaScript和不明白为什么下面的indexOf返回-1:为什么IndexOf返回-1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
我学习JavaScript和不明白为什么下面的indexOf返回-1:为什么IndexOf返回-1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
-1表示 “没有找到匹配”。
返回-1而不是“false”的原因是字符串开头的指针位于位置0,这相当于在Javascript中为false。所以返回-1确保你知道实际上没有匹配。
-1表示没有找到匹配。 “好”不在这句话中。这是documentedbehaviour。
的
indexOf()
方法返回在该给定元素可以在阵列中可以找到,或者如果-1
它不存在的第一个索引。
搜索从不会找到它正在查找的内容(“好”不在句子中),-1是默认返回值。
因为数组是基于0的,所以返回0意味着从第一个字符开始匹配; 1,第二个字符,等等。这意味着0和以上的任何东西都是真实或“找到”的答案。要将所有内容保留在整数类别中,-1表示找不到匹配项。
indexOf在找不到匹配时返回-1还有另一个原因。考虑下面的代码:
if (~str.indexOf(pattern)){
console.log('found')
}else{
console.log('not found')
}
由于〜(-1)= 0,所以实际上的indexOf返回-1使得它更容易编写,如果...其他使用〜。
这就是我正在寻找的。谢谢。 – 2011-12-21 06:39:47