6

未定義のビット演算子のロジックは何ですか???

var x;
console.log(x);     // undefined
console.log(x^7);   // 7
console.log(7^x);   // 7
console.log(x|7);   // 7
console.log(7|x);   // 7
console.log(7&x);   // 0
console.log(x&7);   // 0
console.log(~x);    // -1
console.log(x*2);   // NaN
console.log(x/2);   // NaN
console.log(x+2);   // NaN
console.log(x-2);   // NaN

NaN にはある程度の意味があります。undefined -2​​ は実際には「数値ではない」ためです。しかし、ビットごとの演算子と未定義のロジックには従いません。

4

1 に答える 1

9

内部関数は、すべてのビット演算子のすべてのオペランドで[ToInt32]呼び出されます。

範囲ToInt32(undefined) -> 0[0, 2^32)

于 2013-05-04T00:18:26.353 に答える