我想在这个例子中知道为什么我的情况总是正确的吗?谢谢
function bla() {
var qix = 'z'
if (qix === 'a' || 'b' || 'c') {
console.log('condition ok!! whats wrong???')
}
}
最佳答案
您的代码存在的问题是if
表达式始终计算为true
。
qix === 'a' || 'b' || 'c'
实际上会变成这样:
false || 'b' || 'c'
因为
qix
设置为z
。由于类型繁琐,JavaScript会为第二个表达式返回true
,因为'b'是truthy value。若要更正此问题,您需要按如下所示更改表达式:qix === 'a' || qix === 'b' || qix === 'c'
以便正确表示您的期望。