본문 바로가기

IT 인터넷/javascript

[javascript 언어공부] boolean의 대체제

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

이번에는 조건문과 관련된 부가적인것, 자바스크립트의 특수한 것들에 대해서 좀 더 찾아보자.


조건문에서 if 의 괄호 안에 꼭 boolean만 올 필요는 없다. 


if(0){alert(1)}  //실행이 되지 않는다. 

if(1){alert(2)}  //실행이 된다. 


왜냐면 숫자 1는 true로 간주되기 때문이다. 하지만 이런 코드는 쓰지 않는 것이 좋다.



그리고 자바스크립트에서는 false로 간주되는 데이터 형도 있다.


if(' '){alert('빈 문자열')}


이것은 실행되지 않는데, 빈 문자열은 자바스크립트에서 false로 간주하기 때문이다. 


if('estelar'){alert('undefined')}


따라서 if 괄호 안에 문자열을 줄 때에 비로소 alert문이 실행된다.


if(undefined){alert(1)} 


이것은 실행되지 않는데, 자바스크립트에서 undefined는 false로 간주된다.


var a;

if(!a){

    alert('값이 할당되지 않은 변수'); 

}


이는 a라는 변수를 생성은 했는데 어떠한 값도 주지 않은 상태, undefined이다. 하지만 undefined앞에 느낌표가 있기 때문에

false의 반대 값 true가 되기 때문에 실행된다. 


if(!null){

    alert('null');

}


null도 javascript에서 false로 간주되기 때문에 !null은 true로 실행된다. 



if(!NaN){

    alert('NaN');

}


이것도 실행된다! 



참고 사이트의 내용을 살펴보면, 

https://dorey.github.io/JavaScript-Equality-Table/



if(true)는 true이다.

if(false)는 false이다. 

if(1)은 true이다.

if(0)은 false이다.

if(-1)은 true이다.

if("true")은 true이다.

if("false")은 true이다.

if("1")은 true이다.

if("0")은 true이다.

if("-1")은 true이다.

if("")은 false이다.

if(null)은 false이다.

if(undefined)은 false이다.

if(infinity)은 true이다.

if(-infinity)은 true이다.

if([])은 true이다.

if({})은 true이다.

if([[]])은 true이다. 

if([0])은 true이다.

if([1])은 true이다.

if(NaN)은 false이다.