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

标签 javascript math

我正在做一个测试变量是否为整数的练习。 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);

关于javascript - 为什么 (x^0===x) 输出 x 而不是 true/false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49054507/

相关文章:

ruby - 如何在 Ruby 中对数字数组求和?

javascript - github 喜欢导航

javascript - 这个使用 javascript 的 css3 动画的无限循环不能正常工作并且运行有延迟?

javascript - THREE.js 光线转换对单个> 500k 多边形(面)对象非常慢,线与地球相交

math - 投影-将3d转换为2d

python - 以对数方式拆分 Python 列表

javascript - 'OR' 语句中的 'AND' 和 'IF' 的正确语法是什么?

javascript - Mobx 可观察数组未更新

javascript - Vue 搜索按钮无法获取结果

c++ - 大数乘法取模