为什么(x ^ 0 === x)输出x而不是true/false?

Dev*_*ate 4 javascript math

如果变量是整数,我正在测试. x ^ 0 === x是一个建议的解决方案,但是当我在Chrome的控制台,codepen.io或这里尝试,它返回x.为什么是这样?

function isInteger(x) {
  console.log(x ^ 0 === x);
}

isInteger(5);
isInteger(124.124)
isInteger(0);
Run Code Online (Sandbox Code Playgroud)

mes*_*ill 5

由于您错过了补充(),您的病情会被错误地评估x^0:

function isInteger(x) {
  console.log((x ^ 0) === x);
}

isInteger(5);
isInteger(124.124)
isInteger(0);
Run Code Online (Sandbox Code Playgroud)

  • @Scott Beeson:至少在考试期间不是*. (5认同)