6
私が読んだことによると、JavaScriptのすべての数値は、配列インデックスとビット演算のオペランド以外は浮動小数点数として保存されます。-0 === 0が本当に評価されるのはなぜですか?
すべての浮動小数点に符号ビットがあるので、-0 === 0
はfalseと評価する必要があります。しかし、それは真であると評価されます。
私が読んだことによると、JavaScriptのすべての数値は、配列インデックスとビット演算のオペランド以外は浮動小数点数として保存されます。-0 === 0が本当に評価されるのはなぜですか?
すべての浮動小数点に符号ビットがあるので、-0 === 0
はfalseと評価する必要があります。しかし、それは真であると評価されます。
JSは-0
と+0
が「通常の(数値)比較演算子と等しい」と述べる浮動小数点数のIEEE 754規格を使用しているためです。 (source)
ああ、撃つ。衛星を起動しないでください!アボート!アボート! –
あなたの質問のタイトルは非常に誤解を招くもので、-0 === 0は真であると評価されています。 –
彼らは異なっていますが、数字の仕組みの仕様は、不確実な言葉ではなく、何が起こるべきかという理由で、真と評価されます。 – ssube