我學習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