는주의 :
!a
은 true 또는 false로 평가합니다. bool에 a
의 전환이 true
인 경우 !a
은 false로 평가됩니다.
모든 양의 정수는 true
입니다. 따라서 !a
은 false로 평가됩니다. double = ==
을 1로 사용하여 비교하면 부울 1
또는 true
과 함께 부울 !a
이 테스트됩니다. 따라서 a
이 양의 정수인 경우에는 if
문이 항상 false로 평가됩니다.
뭔가를 테스트하고 싶다면 비교 연산자 (===
)의 첫 번째 같음을 !
으로 변경해야합니다.
예. var a = 2; if(a!==1) { // do something }
< - A는 2이므로, a
이과 같음 1
이 아니므로 if 비교 결과가 참으로 평가됩니다. 코드에서
우리는이 :
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
}
희망
P.S.을하는 데 도움이당신의 비교 연산자를 기억
!"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를 참조하십시오. –