ホームページ >ウェブフロントエンド >jsチュートリアル >なぜ「0.5 |」なのか0` JavaScript で 0 と評価しますか?
JavaScript のビット単位操作の探索: ""|" の奇妙なケース
JavaScript では、単一のパイプ文字 ""|" が使用されます。 " は、ビット単位の OR 演算を表します。この演算子は、オペランドのバイナリ表現に対して論理評価を実行し、どちらかのオペランドの対応するビットが 1 に設定されている場合、ビット位置が 1 に設定されたバイナリ値を出力します。
理解するにはこの演算子がどのように機能するかについて、例を考えてみましょう。
<code class="js">console.log(0.5 | 0); // 0 console.log(-1 | 0); // -1 console.log(1 | 0); // 1</code>
驚くべきことに、0.5 | 0 は 0 と評価されますが、-1 | 0 と 1 | 0 は両方とも入力整数を返します。 0.5 が | 演算子に渡されると、0 | 0 が残り、結果は 0 になります。
対照的に、-1 と 1 は両方とも整数です。ビットごとの OR 演算は、どちらかのオペランドにそのビットが設定されている場合、対応するビットを 1 に設定します。 -1 と 1 の両方のビットが 1 に設定されているため、演算は単純に入力整数を返します。 0 は 1 を返します。
本質的に、単一パイプ演算子はビット単位の or 演算を実行し、どちらかの入力の対応するビットが 1 に設定されている場合にビットを 1 に設定します。ただし、ビット単位の演算は整数にのみ適用されるため、JavaScript非整数オペランドを切り捨て、演算の出力を変更する可能性があります。
以上がなぜ「0.5 |」なのか0` JavaScript で 0 と評価しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。