JavaScript の魔法の ~~ (二重チルダ) 演算子を探索する
JavaScript の冒険の領域で、あなたは神秘的な オペレーター。一見すると、これは信頼できるビット単位の NOT 演算子である単一のチルダ ~ に似ています。これは、 が二重の NOT を実行し、単に同じ値を返すという意味ですか?さらに深く掘り下げて、その真の目的を明らかにしましょう。
真実を明らかにする
演算子の秘密は、オペランドの解釈方法にあります。単一のチルダとは異なり、 は、入力が数値または文字列であっても、符号付き 32 ビット整数に変換します。この変換では、小数点以下をすべて削除するビット単位の演算が実行されます。
<code class="javascript">function(x) { if(x < 0) return Math.ceil(x); else return Math.floor(x); }</code>
31) と 231 の間の値の場合、オーバーフローを避けるために 1 - 1。
なぜ ~~ は NOT
は NOT 演算を 2 回適用することと同等ではないことを理解することが重要です。最初の NOT 演算はビットを反転しますが、2 番目の NOT 演算は単にビットを再度反転して元の値に戻します。代わりに、 は数値の小数部分を直接切り捨てます。たとえば、数値 -43.2 は、32 ビット バイナリで次のように表されます。
<code class="binary">11111111111111111111111111010101</code>
<code class="binary">11111111111111111111111111010101</code>
~~ は文字列引数を数値に変換するのに役立ちますが、オーバーフローの危険があります。また、非整数には固有の不正確性があるため、これは危険な選択となります。代わりに、x や Number(x) などのより単純なメソッドを使用することを検討してください。
結論として、~~ は、数値または文字列から 10 進数値を切り捨てる魅力的な演算子です。その独特の動作と制限を理解することで、JavaScript の冒険で責任を持ってその力を利用することができます。
以上が## ~~ (二重チルダ) 演算子は JavaScript で実際に何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。