ホームページ  >  記事  >  ウェブフロントエンド  >  なぜ「0.5 |」なのか0` JavaScript で 0 と評価しますか?

なぜ「0.5 |」なのか0` JavaScript で 0 と評価しますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 05:28:30500ブラウズ

Why Does `0.5 | 0` Evaluate to 0 in JavaScript?

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 サイトの他の関連記事を参照してください。

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