为什么console.log(true + 1)返回2?

时间:2016-06-18 07:48:20

标签: javascript

我希望NaN或未定义的东西,但

console.log(true+1)

显然给了我2。 为什么呢?

2 个答案:

答案 0 :(得分:3)

根据文件:

  

//布尔值+数字 - >另外

     

true + 1 // 2

  

// Boolean + Boolean - >另外

     

false + false // 0

所以:

console.log(false + 3)//returns 3
console.log(true + 3)//returns 4

还有:

console.log((true+true)*(true+true+true))//returns 6

以下是链接:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators

答案 1 :(得分:2)

JavaScript非常愿意转换数据类型。在您的示例中,它将true转换为数字1,以便可以将其添加到另一个数字。

这些转化有时会导致令人惊讶的结果。有关更令人惊讶的结果,请参阅the humorous Wat talk