-4

这些陈述如何等效?

var test = '一个'

if( test == 'car' || 'one' ){
console.log('spo')
}

if( test == 'car' || test == 'one' ){
console.log('spo')
}
4

4 回答 4

6

不,它们不相等。

if( test == 'car' || 'one' ){
    console.log('spo')
}

相当于

if( test == 'car' || 'one' != ''){
  console.log('spo')
}
于 2012-09-12T19:42:02.110 回答
2

不会。第一次测试总会通过。

如果左侧||是假的,它将返回右侧。'one'因此将返回右侧 ( )。这是真的,所以测试会通过。

于 2012-09-12T19:41:41.390 回答
1

不,他们不是。

在第一个条件中,与test == 'car' || 'one' 总是 计算真值(即相等“一”的结果)相同。(test == 'car') || 'one'

后一个条件仅在 test 为“car”或“one”时产生 true,而在所有其他情况下产生 false。

也可以尝试使用失败的测试值,例如“hello”作为反例。

于 2012-09-12T19:53:21.380 回答
0

不。像Javascript这样的语言接受'one'是真的。所以第一个测试总会通过。第二个具有错误的能力,因为我们不知道测试可能是什么。

于 2012-09-12T19:42:47.587 回答