我正在做一个关于测试变量是否为整数的练习。 x ^ 0 === x 是建议的解决方案之一,但是当我在 Chrome 的控制台、codepen.io 或此处尝试时,它返回 x 。为什么是这样?

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

isInteger(5);
isInteger(124.124)
isInteger(0);

最佳答案

由于您错过了在 () 周围添加 x^0 ,您的条件被错误评估:

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

isInteger(5);
isInteger(124.124)
isInteger(0);

10-08 02:33