한 식에 논리 부정을 수행한다.

 result!=expression
인수
result : (결과값 변수)
결과값을 할당할 임의의 변수 이름이다.
expression : (표현식)
공식, 변수, 수치, 등을 포함하는 임의의 수식이다.
설명

표현식이 틀린가? 라는 질문으로 맞으면(true)이면 결과값은 틀리고(false), 표현식이 틀리면(false) 맞아서 결과값은 true이다. 따라서 결과값과는 반대값을 반환한다.

expressionresult
truefalse
falsetrue

! 연산자와 같은 모든 단일 연산자는 다음과 같은 과정을 거쳐 식을 평가한다.

특기

순서를 바꾸어 =!를 사용하면 오류가 발생된다.

NaNNaN의 비교는 항상 다르다. 그러나 InfinityInfinity의 비교는 항상 같다. ⇒예제 참조

Infinity등 극한 상황의 계산 결과값은 한계 수치 속성 계산 예제을 참조하라.



operator
not(!) 연산자
not(!)</b> 연산자이전페이지로페이지 맨위로페이지 맨아래로

간단한 ! 연산자 예제

false
true

true
false

true
false
<SCRIPT>
a=5;
b='7';
c='5';
d='';
document.write(!a); // 값이 5이므로 false
document.write('<BR>');
document.write(!d); // 값이 없으므로 true
document.write('<BR><BR>');
document.write(a!=b); // 같지 않으므로 true
document.write('<BR>'); // 줄바꿈
document.write(a!=c); // 같으므로 false
document.write('<BR><BR>');
d='aaa';
e='bbb';
f='bbb';
document.write(d!=e); // 같지 않으므로 true
document.write('<BR>');
document.write(e!=f); // 같으므로 false
document.write('<BR>');
</SCRIPT>

루프에서 부정 논리문 예제

0) (i!=5)=[true] (i는 5와 같지 않음)
1) (i!=5)=[true] (i는 5와 같지 않음)
2) (i!=5)=[true] (i는 5와 같지 않음)
3) (i!=5)=[true] (i는 5와 같지 않음)
4) (i!=5)=[true] (i는 5와 같지 않음)
5) (i!=5)=[false]
6) (i!=5)=[true] (i는 5와 같지 않음)
7) (i!=5)=[true] (i는 5와 같지 않음)
<SCRIPT>
for (i=0;i<8;i++){ // 0에서 7까지 1씩 증가하는 루프.
  document.write(i+') (i!=5)=['+(i5)+'] '); // i값이 5인가를 점검하여 부정 논리값을 출력
  if (i!=5) document.write('(i는 5와 같지 않음)'); // 값이 true 이면 추가 설명 출력
  document.write('<BR>'); // 줄바꿈
}
</SCRIPT>

특수 상황 ! 연산자 예제

varA="" ⇒ !varA ⇒ !"" ⇒ true
isNaN(1)!=isNaN(2) ⇒ false!=false ⇒ false
varA!=0 ⇒ ""!=0 ⇒ false
varA!=0 ⇒ ""==0 ⇒ true

varA=Math.pow(777,777) ⇒ Number(Math.pow(777,777) )=Infinity
varB=Math.pow(500,500) ⇒ Number(Math.pow(500,500))=Infinity
Number(varA))!=Number(varB) ⇒ Infinity!=Infinity ⇒ false
Number(varA))==Number(varB) ⇒ Infinity==Infinity ⇒ true

varA="문장A" ⇒ Number(문장A)=NaN
varB="문장B" ⇒ Number(문장B)=NaN
Number(varA))!=Number(varB) ⇒ NaN!=NaN ⇒ true
Number(varA))==Number(varB) ⇒ NaN==NaN ⇒ false
<SCRIPT>
br='<BR>'; // 줄바꿈
varA=''; // 빈 문자열 할당
document.write('varA="" ⇒ !varA ⇒ '+'!"'+varA+'" ⇒ '+!varA+br);
document.write('isNaN(1)!=isNaN(2) ⇒ ',isNaN(1)+'!='+isNaN(2)+' ⇒ ',isNaN(1)!=isNaN(2),br);
document.write('varA!=0 ⇒ "',varA+'"!=0 ⇒ ',varA!=0,br);
document.write('varA!=0 ⇒ "',varA+'"==0 ⇒ ',varA==0,br+br);

varA=Math.pow(777,777); // 777777
varB=Math.pow(500,500); // 500500
document.write('varA=Math.pow(777,777) ⇒ Number(Math.pow(777,777) )='+Number(varA)+br);
document.write('varB=Math.pow(500,500) ⇒ Number(Math.pow(500,500))='+Number(varB)+br);
document.write('Number(varA))!=Number(varB) ⇒ ',Number(varA)+'!='+Number(varB)+' ⇒ ',
  Number(varA)!=Number(varB),br); // 둘다 Infinity 이므로 같고, 결과값은 false를 반환한다.
document.write('Number(varA))==Number(varB) ⇒ ',Number(varA)+'=='+Number(varB)+' ⇒ ',
  Number(varA)==Number(varB),br+br); // 둘다 Infinity 이므로 같고, 결과값은 true를 반환한다.

varA='문장A';
varB='문장B';
document.write('varA="'+varA+'" ⇒ Number('+varA+')='+Number(varA)+br+'varB="'+varB+'" ⇒ Number('+varB+')='+Number(varB)+br);
document.write('Number(varA))!=Number(varB) ⇒ ',Number(varA)+'!='+Number(varB)+' ⇒ ',
  Number(varA)!=Number(varB),br); // 둘다 NaN 이므로 비교가 안되 다르고, 결과값은 true를 반환한다.
document.write('Number(varA))==Number(varB) ⇒ ',Number(varA)+'=='+Number(varB)+' ⇒ ',
  Number(varA)==Number(varB),br); // 둘다 NaN 이므로 비교가 안되 다르고, 결과값은 false를 반환한다.
</SCRIPT>

operator
not(!) 연산자
견본
이전페이지로페이지 맨위로
최종 수정:
06/14/2025 18:22:57
KoXo Homepage
All right reserved
비정상적인 방식으로 프레임없이 페이지에 접속하면 자주 오류가 발생됩니다.
오류가 나면 정상적 접속으로 시도해 보세요.
http://koxo.com/lang/js/operator/not.html