気をつけて:
!atrueまたはfalseに評価されます。aのboolへの変換がfalseとtrue評価された場合!a。
すべての正の整数はに評価されtrueます。したがって!a、falseと評価されます。double = 1を使用して比較すると、そのブール値とブール値または==がテストされます。したがって、が正の整数であると私が思う場合、あなたのステートメントは常にfalseと評価されます。!a1trueaif
テストしたいものが他のものではない場合は、比較演算子(===)の最初の等号をに変更する必要があります!。
たとえばvar a = 2; if(a!==1) { // do something }、<-Aは2であるため、if比較では、に等しくa ない1と評価されます。
あなたのコードには次のものがあります:
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
}
お役に立てば幸い
PS比較演算子を覚えておいてください:
!"hello world" == 0 // true
!"hello world" === 0 // false
アップデート
別の投稿であなたのコメントを見ましたが、それaは0何かが起こるまでです1。
この場合:
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();
}