-4

これらのステートメントはどのように同等ですか?

var test ='one'

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' は、 は 常に真の値(つまり、等値または「1」の結果) に評価される(test == 'car') || 'one'ものと同じです。

後者の条件は、test が「car」または「one」の場合にのみ true になり、それ以外の場合は false になります。

反例の「こんにちは」のように、失敗したテスト値でも試してください。

于 2012-09-12T19:53:21.380 に答える
0

いいえ。「1」を真として受け入れる Javascript のような言語。したがって、最初のテストは常にパスします。2 番目のテストは、何がテストになるかわからないため、false になる可能性があります。

于 2012-09-12T19:42:47.587 に答える