我希望NaN或未定义的东西,但
console.log(true+1)
显然给了我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。