我想在这个例子中知道为什么我的情况总是正确的吗?谢谢

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'


以便正确表示您的期望。

10-06 04:15