javascript - 为什么这段代码会返回它所返回的结果

标签 javascript

当我在节点中运行它时,我得到以下结果。为什么?

//Why does this code return the results that it does?
function isBig(thing) {
  if (thing == 0 || thing == 1 || thing == 2) {
    return false
  }
  return true
}
isBig(1)    // false
isBig([2])  // false
isBig([3])  // true

最佳答案

JavaScript 中的 == 运算符在检查相等性之前将其操作数转换为通用类型(这就是为什么建议始终使用 === 运算符,它尊重类型)。 在您的情况下,常见类型是 number,因此每个给定的数组都会转换为数字。对于单个元素数组,转换为数字会产生单个元素(转换为数字)。

参数[2]等于数字2,因此返回false。 另一方面,[3] 既不等于 0、1 也不等于 2,因此返回 true

另请参阅https://www.w3schools.com/js/js_type_conversion.asp了解更多示例。

关于javascript - 为什么这段代码会返回它所返回的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897625/

相关文章:

javascript - 链接到 native Javascript 函数

javascript - 单击 div 上的关闭按钮并触发 div click()

javascript - 为什么这个 'eloquent Javascript' 递归解决方案有效?

javascript - ReactJS ReactCSSTransitionGroup 仅在初始加载时设置动画

javascript - Highcharts 自定义事件插件右键单击事件未触发

javascript - Appium/Protractor 在真实设备上旋转屏幕

javascript - ReasonML javascript 记录字段

javascript - 如何按顺序和限制计算多个数组的数组元素计数之和?

Javascript 如何使用对象键作为对象路径?

javascript - 为选定的文本节点生成/获取 Xpath