6

undefined 上的位运算符的逻辑是什么???

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 回答