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

Mary-Kate Olsen
リリース: 2024-10-27 05:28:30
オリジナル
499 人が閲覧しました

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

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