2017-11-10 8 views
2

私の "C"状態が 'else'文になるのはなぜですか?それらは分離された 'if'文ですが、一緒に動作しません。javascript if文が期待通りに評価されていない

var objTest = { 
    ID : "10" 
}; 

//A: First Condition: Exist value in property ID 
console.log((objTest.ID ? 'if' : 'else'));      // output => "if" 

//B: Second Condition: Value different from "0" 
console.log((objTest.ID != "0" ? 'if' : 'else'));    // output => "if" 

//C: First and Second Condition together must be "if" 
console.log((objTest.ID & objTest.ID != "0" ? 'if' : 'else')); // output => "else" 
+5

'&'と '&& 'の間にはかなりの違いがあります – Pointy

+1

ここには実際には' if'文は含まれていません。 – Pointy

+0

私より速いです –

答えて

2

あなたの問題は、あなたが間違ったAND opernatorを使用していることで、あなたは&の代わりに&&を使用する必要があります。

console.log((objTest.ID && objTest.ID != "0" ? 'if' : 'else')); 

最初&は、ビット演算子であると&&は論理演算子です。

詳細はWhat's the difference between & and && in JavaScript?をご覧ください。

+0

ありがとう!!それはエラーでした!ごめんなさい!私は他のプログラマーの目だけが必要でした –

+0

@CarlosDominguezこの種の混乱が常に起こっています;) –

関連する問題