は注意してください:
!a
は、trueまたはfalseに評価されます。ブールへのa
の変換がtrue
の場合、!a
はfalseと評価されます。
すべての正の整数はtrue
と評価されます。したがって、!a
はfalseと評価されます。 ==
を1に設定して比較すると、ブールがブール値1
またはtrue
でテストされます。したがって、a
が正の整数であると思われる場合は、if
ステートメントは常にfalseと評価されます。
何か他のものではない場合、比較演算子(===
)の最初の等価を!
に変更する必要があります。
など。 var a = 2; if(a!==1) { // do something }
< - Aは2であるため、a
はと等しい1
ではないため、比較結果は真と評価されます。
我々が持っているあなたのコードで
:
P.S.を助け
var a = 2;
if(!a==1){
// a was 2 (or boolean true by default)
// but using ! has negated its boolean value
// so !a evaluates to boolean false
// which is being compared to 1 (evaluating to boolean true)
// so this if statement will never get here
}
・ホープあなたの比較演算子を忘れないでください:
!"hello world" == 0 // true
!"hello world" === 0 // false
更新
私は何かが、それは1
で発生するまでa
が0
であることを言った別のポストにあなたのコメントを見ました。この場合
:
var a = 0; // integer 0 or bool false
if(!a==1){ // if the bool opposite of 0 (false) is equal to 1 (true)
// well, opposite of false is true, so you're checking if true is equal to true
// so this will get called
e.preventDefault();
}
*あなたはなぜ尋ねない*正しい上記のコードですか?問題はありますか?はいの場合は、どちらですか? –
「a」とは何ですか?それをあなたのコードに投稿できますか? – elclanrs
'=='と '==='には違いがあるので注意してください。 'a'が整数' 1'と等しいかどうかを確認するには 'a === 1 'を使うべきです。違いについては、http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-useを参照してください。 –