【问题标题】:How true+false===1 evaluates to true [duplicate]true+false===1 如何评估为 true [重复]
【发布时间】:2019-08-21 10:25:56
【问题描述】:

我正在尝试将 true+false 与 1 进行比较,即 true+false===1

过去,我尝试过以下方法:

   true===1  //false
   false===0 //false
   true-true===0 //true

我希望输出为假,但实际输出为真。

【问题讨论】:

标签: javascript ecmascript-6


【解决方案1】:

true 和 false 在用于数学运算时被隐式类型转换为数字

注意:- 这里 + 是类型转换为数字

console.log(+true)
console.log(+false)
console.log(true+false)

所以

true + false === 1 

其实是

1 + 0 === 1

【讨论】:

    【解决方案2】:

    当你将两个布尔值相加时,由于布尔值不支持算术运算,而只支持逻辑运算,JS环境只是将它们转换为数字。所以 1+0===1。但是如果你做 true ===1,这是类型敏感的,它会导致 false。如果你做 true == 1,那就是真的。因为这不是类型敏感的,类型转换将由 JS 环境完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-15
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多