次のコード スニペットがあります。
return (AllowableCharacters.indexOf(String.fromCharCode(k)) != -1);
さて、このスクリプトでの -1 の使い方がよくわかりません。
スクリプトの読み取り方法は次のとおりです。
first String.fromCharCode(k) != -1
実行されます(kはキーコードです。他のスクリプトから動的に取得しています)。
次に、AllowableCharacters から indexof(String.fromCharCode(k) != -1) を取得します。
これは、次のような文字列です。
AllowableCharacters = "abc" ;
また、indexof が上記の文字列で値を見つけられない場合、-1 が返されることも理解しています。
私の質問に戻りますが、スクリプトの -1 はなぜですか?
編集 ::
私の質問を簡単にするために、次の行をどのように読みますか :
String.fromCharCode(k))!=-1
簡単な平易な英語で。
編集2::
わかりましたので、グッファの答えを読んで、チェックするランダムなスクリプトを作成しました。スクリプトは次のとおりです。
var store = "abcdefgpS";
function check_index(){
console.log(store.indexOf(String.fromCharCode(83)));
};
上記の関数では !-1 が除外されるため、console.log では、一致が見つかった場合はその文字が見つかった indexOf を取得し、一致が見つからない場合は -1 を取得します。
今、それは私たちが望むものではなく、私たちが望むのは、「値がそこにあるかどうかを教えてください」(trueを返す)または「値がそこにないかどうかを教えてください」(falseを返します)です。
したがって、上記のスクリプトを次のように変更します。
var store = "abcdefgpS";
function check_index(){
console.log(store.indexOf(String.fromCharCode(83)) !-1);
};
これは、あなたに真または偽の値を与えます。
今どのように:
return (store.indexOf(String.fromCharCode(83)) !-1)
読み方:
if (store.indexOf(String.fromCharCode(83)) !-1){
return true;
}else { return false; }
に if 文がありません。
return (store.indexOf(String.fromCharCode(83)) !-1);
ありがとうございました、
アレクサンダー