ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で式の前にチルダ演算子が使用されるのはなぜですか?
先行する式におけるチルダ演算子の重要性
チルダ演算子 (~) は、すべてのビットを反転する JavaScript のビット単位の演算子です。そのオペランド。この演算子は式の評価前に使用されることはほとんどなく、その目的と意味について疑問が生じます。
次のコード例を考えてみましょう。
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML'
このコードでは、チルダ演算子は、 IndexOf() 関数。 IndexOf() 関数は、文字列内で最初に出現したターゲット文字列のインデックスを返します。ターゲット文字列が見つからない場合は、-1 を返します。
チルダ演算子の効果
チルダ演算子は、indexOf() の戻り値を 32 に変換します。 -bit 整数を指定し、そのすべてのビットを反転します。たとえば、indexOf() が -1 (ターゲット文字列が見つからなかったことを示す) を返した場合、チルダ演算子はバイナリ表現のすべてのビットを反転します。
0000 0000 0000 0000 0000 0000 0000 0001 (original) => 1111 1111 1111 1111 1111 1111 1111 1110 (inverted)
結果は正の数になります。 JavaScript では真実として扱われます。したがって、式 ~'input,textarea'.indexOf(target.tagName.toLowerCase()) は、ターゲット文字列が見つからない場合は true と評価され、見つかった場合は false と評価されます。チルダ演算子のケース
一般的ではありませんが、チルダ演算子にはさまざまな用途があります。以下を含みます:
低レベルプログラミング:文字列または配列内の値の存在をテストするために、JavaScript は専用のメソッドを提供するようになりました:
Array.prototype.includes()結論
チルダ演算子を式の前に置くと、式の値がビット単位の表現に変換され、そのすべてのビットが反転されます。これにはいくつかのあいまいな用途がありますが、Array.prototype.includes() や String.prototype.includes() などのより現代的なメソッドと比較して、明確さに欠け、関連性が低いため、一般的に推奨されません。
以上がJavaScript で式の前にチルダ演算子が使用されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。