이번에는 조건문과 관련된 부가적인것, 자바스크립트의 특수한 것들에 대해서 좀 더 찾아보자.
조건문에서 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이다.
'IT 인터넷 > javascript' 카테고리의 다른 글
[javascript 언어공부] 반복문(2) - for문 (0) | 2018.05.29 |
---|---|
[javascript 언어공부] 반복문(1) - while문 (0) | 2018.05.28 |
[javascript 언어공부] 논리 연산자 (0) | 2018.05.28 |
[javascript 언어공부] 조건문(2) (0) | 2018.05.28 |
[javascript 언어공부] 조건문(1) (0) | 2018.05.25 |