どういうわけか、JavaScript はビット演算 NaN ^ 1
、Infinity ^ 1
さらには'a' ^ 1
(すべて に評価されます1
) を理解します。
数値以外のビット演算子を管理するルールは何ですか? 上記のすべての例が評価されるのはなぜ1
ですか?
どういうわけか、JavaScript はビット演算 NaN ^ 1
、Infinity ^ 1
さらには'a' ^ 1
(すべて に評価されます1
) を理解します。
数値以外のビット演算子を管理するルールは何ですか? 上記のすべての例が評価されるのはなぜ1
ですか?
ECMA-262は 11.10 で、バイナリ ビット演算子の引数が ToInt32 で変換されることを定義しています。ToInt32 を説明する 9.5 は、最初の 2 つの点で次のように述べています。
- number を入力引数で ToNumber を呼び出した結果とします。
- number が NaN、+0、-0、+Inf、または -Inf の場合、+0 を返します。