2016-06-24 13 views
-2

このIF文がどうして正しく動作しないのですか?IF文がバグですか?

コード:

function testFunction() 
{ 
    var cnt = 0;  
    alert((!cnt > 1 ? '<= 1' : '> 1')); 
} 

testFunction(); 

それはelseステートメントのためにいって、CNTに設定されているもの値が問題ではありません。誰かがなぜ、どのように私を説明することができますか?アクションで

フィドル:

https://jsfiddle.net/hfagyf66/1/

編集:私ものparseInt変数CNT、なぜこれが起こっているのはまだありません手掛かり。

+3

'!cnt> 1 'は'(!cnt)> 1'と '!0 = 1'と同じで、' 1'は**ではなく**厳密に '1'より大きいので、偽です。それを '!(cnt> 1)'に変更してください。 – Bakuriu

+2

質問の奇妙な言い回しは、あなたが 'else'ステートメントのために行くと主張しているからですが、質問に' else'ステートメントはありません。私はそれが三項の第二のオプションを実行するということを意味すると思いますか? – jfriend00

+1

これはPHPとどのように関連していますか? – MonkeyZeus

答えて

1

!オペレータは非常に高い優先度を持っています。したがって、0または1である!cntが最初に評価されるので、条件> 1は決して満たされない可能性があります。

+0

あなたの説明をありがとう。それは今、すべて意味があります。 – Testuser075