## ~~ (二重チルダ) 演算子は JavaScript で実際に何をするのでしょうか?

Mary-Kate Olsen
リリース: 2024-10-30 09:16:03
オリジナル
202 人が閲覧しました

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

JavaScript の魔法の ~~ (二重チルダ) 演算子を探索する

JavaScript の冒険の領域で、あなたは神秘的な オペレーター。一見すると、これは信頼できるビット単位の NOT 演算子である単一のチルダ ~ に似ています。これは、 が二重の NOT を実行し、単に同じ値を返すという意味ですか?さらに深く掘り下げて、その真の目的を明らかにしましょう。

真実を明らかにする

演算子の秘密は、オペランドの解釈方法にあります。単一のチルダとは異なり、 は、入力が数値または文字列であっても、符号付き 32 ビット整数に変換します。この変換では、小数点以下をすべて削除するビット単位の演算が実行されます。

言い換えると、この演算子は次の関数のように動作します。

<code class="javascript">function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}</code>
ログイン後にコピー
ただし、正しく動作するだけです。 -(2

31) と 231 の間の値の場合、オーバーフローを避けるために 1 - 1。

なぜ ~~ は NOT

は NOT 演算を 2 回適用することと同等ではないことを理解することが重要です。最初の NOT 演算はビットを反転しますが、2 番目の NOT 演算は単にビットを再度反転して元の値に戻します。代わりに、

は数値の小数部分を直接切り捨てます。たとえば、数値 -43.2 は、32 ビット バイナリで次のように表されます。

~~ を適用した後、
<code class="binary">11111111111111111111111111010101</code>
ログイン後にコピー
ログイン後にコピー

となり、-43 に変換されます。これは、~~ が数値の小数部を効果的に削除することを示しています。
<code class="binary">11111111111111111111111111010101</code>
ログイン後にコピー
ログイン後にコピー

注意事項

~~ は文字列引数を数値に変換するのに役立ちますが、オーバーフローの危険があります。また、非整数​​には固有の不正確性があるため、これは危険な選択となります。代わりに、x や Number(x) などのより単純なメソッドを使用することを検討してください。

結論として、~~ は、数値または文字列から 10 進数値を切り捨てる魅力的な演算子です。その独特の動作と制限を理解することで、JavaScript の冒険で責任を持ってその力を利用することができます。

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

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