二重チルダ (~~) 演算子は JavaScript で何をするのですか?

DDD
リリース: 2024-10-25 11:39:02
オリジナル
888 人が閲覧しました

What Does the Double Tilde (~~) Operator Do in JavaScript?

二重チルダ演算子: ~~

の詳細 JavaScript では、" とも呼ばれる ~~ 演算子に遭遇することがあります。二重チルダ」演算子。単一のチルダ ~ はビット単位の NOT を表しますが、二重チルダがどのような役割を果たすのか疑問に思うかもしれません。

直感に反して、~~ は NOT 演算の NOT を実行しません。代わりに、オペランドを暗黙的に 32 ビット整数に変換し、小数点以下をすべて削除します。この動作は数値と文字列の両方に適用されます。

技術的には、~~ は次の関数のように動作します:

<code class="javascript">function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}</code>
ログイン後にコピー

ただし、正確な結果が得られるのは、オペランド x が次の範囲内にある場合のみです。 -(2^31) から 2^31 - 1。この範囲を超えると、オーバーフローが発生し、数値の「回り込み」が発生します。

文字列引数の数値解析には ~~ を使用したくなるかもしれません。 、しかしこれはお勧めできません。オーバーフローと非整数の不正確さのため、これは不適切な選択となります。代わりに x または Number(x) を使用してください。

NOT の NOT としての二重チルダを理解する

~~ が NOT 演算の NOT を効果的に実行する方法を理解するには、次のことを考慮してください。次の例:

数値 -43.2 は、符号付き 32 ビット 2 進数として表されます:

-43.2 = 11111111111111111111111111010101 (2)
ログイン後にコピー

ビット単位の適用 NOT:

NOT -43.2 = 00000000000000000000000000101010 (2) = 42
ログイン後にコピー

の 2 番目の適用ビット単位の NOT:

NOT 42 = 11111111111111111111111111010101 (2) = -43
ログイン後にコピー

~~ 演算子は、NOT 演算の NOT を直接的な方法で実行しないにもかかわらず、2 つの連続するビット単位の NOT 演算と同じ結果を生成することに注意してください。

以上が二重チルダ (~~) 演算子は JavaScript で何をするのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!