私はJavascriptを学んでいますが、以下のindexOfが-1を返す理由がわかりません。
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
-1は「一致するものが見つかりません」を意味します。
「false」ではなく-1を返す理由は、文字列の先頭にある針が位置0にあるためです。これは、Javascriptのfalseに相当します。したがって、-1を返すと、実際には一致しないことがわかります。
配列は0ベースであるため、0を返すことは、最初の文字から開始して一致したことを意味します。 1、2番目の文字、というように続きます。これは、0以上が真のまたは「見つかった」応答になることを意味します。整数カテゴリにすべてを保持するために、-1は一致が見つからなかったことを示します。
一致するものが見つからない場合にindexOfが-1を返すもう1つの理由があります。以下のコードを検討してください:
if (~str.indexOf(pattern)){
console.log('found')
}else{
console.log('not found')
}
〜(-1)= 0であるため、indexOfが-1を返すという事実により、他の場合は〜を使用すると記述が容易になります。
検索では、探しているものが見つからないため(「good」は文に含まれていません)、-1がデフォルトの戻り値です。