ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で式の前にチルダ演算子が使用されるのはなぜですか?

JavaScript で式の前にチルダ演算子が使用されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-24 18:35:35600ブラウズ

Why is the Tilde Operator Used Before an Expression in 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 と評価されます。チルダ演算子のケース

一般的ではありませんが、チルダ演算子にはさまざまな用途があります。以下を含みます:

低レベルプログラミング:
    ビットを直接操作できます。
  • パフォーマンスの最適化:
  • ビット単位のトリックで使用できます。特定の状況でのパフォーマンスを向上させるため。
  • 真/偽キャスト:
  • 見つからなかった場合に、indexOf() の戻り値を真の値に変換するトリックとして使用できます。
  • 数値の切り捨て:
  • 悪用される可能性があります。数値を 32 ビットに切り捨て、正の値に対して Math.floor() を効果的に実行します。
  • チルダ演算子の代替

文字列または配列内の値の存在をテストするために、JavaScript は専用のメソッドを提供するようになりました:

Array.prototype.includes()
    用arrays
  • String.prototype.includes()
  • for strings
  • これらのメソッドはブール値を直接返すため、チルダのより明確で効率的な代替手段となります。演算子.

結論

チルダ演算子を式の前に置くと、式の値がビット単位の表現に変換され、そのすべてのビットが反転されます。これにはいくつかのあいまいな用途がありますが、Array.prototype.includes() や String.prototype.includes() などのより現代的なメソッドと比較して、明確さに欠け、関連性が低いため、一般的に推奨されません。

以上がJavaScript で式の前にチルダ演算子が使用されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。