当我在节点中运行它时,我得到以下结果。为什么?
//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/