これが冗談ではない場合に備えて...
String.prototype.indexOf
ターゲット文字列内で一致する文字列の出現を返します。その行の最初の出現を探すだけなので、正しくゼロを返します。
検索文字列を変更すると(たとえば、ランダムな文字を使用して)、検索文字列-1
が見つからないため、結果として取得されます。
結果をブール式に変換するために、バイナリではなく演算子を使用する方法があります。.indexOf()
これは次のようになります
var res = test1.indexOf('{"packageId":"1","machineId":"1","operationType":"Download"}');
if( ~res ) {
// we have a match
} else {
// no match at all
}
詳細に立ち入ることなく、not演算子は、バイトの各ビットを否定します。また、値が正か負かを判断するために使用される追加のビットも否定します。したがって、 ECMAscriptでは、偽の値と評価される値はごくわずかであるため、負の値はと評価されtrue
ます。
ブール値の結果を実際に得るには、次のようになります。
if( !!~res ) { }
この場合も、これは実際には必要ありません。
を使用して「正しい」結果を取得するためにはるかに頻繁に使用される方法.indexOf()
(配列についても同じです)は、結果がより大きいかどうかを確認することです。-1
if( res > -1 ) { }