javascript에서는 모든 자료형을 상황에 따라 자동으로 형변환해준다. 알고쓰면 참 편리한 기능이라 하겠다. 당연한 얘기지만 형변환에는 규칙이 있다. 그동안 사용해왔지만 정리해본다.
Boolean 값으로의 형변환 규칙은 다음과 같다.
- null, undefined 값은 false가 된다.
- 숫자 0, NaN은 false가 된다.
- 빈문자열 ''은 false가 된다.
- 그 외의 모든값은 true가 된다.
var test1 = document.getElementById('text');
if(test1){
if(test1.value){
alert('값 있음');
}else{
alert('값 없음');
}
}else{
alert('태그 없음');
}
위 코드처럼 Object로 사용해도 편하게 사용할 수 있고 값의 유무확인도 간단하게 할 수 있다. 하지만 비교문에서는 조금 다르다. ||나 &&는 비교를 하지만 그 결과로 객체를 반환해준다. 다음을 보자.
var x = 3;
var y = 4;
var z = x || y; // 3이 들어간다.
var q = x && y; // 4이 들어간다.
var x = 0;
var y = 4;
var z = x || y; // 4이 들어간다.
var q = x && y; // 0이 들어간다.
비교는 순차적으로 일어난다. 그래서q = x&&y의 경우에 x값이 false인 경우에는 y값을 확인하지 않는다. 그리고 결과로 x를 반환해주고 q에 넣는다. 위 예와 같은 경우에는 항상 주의가 필요하다.
'Javascript' 카테고리의 다른 글
구글 단축URL을 만들자 (0) | 2014.02.28 |
---|---|
객체 안의 프로퍼티 접근 (0) | 2014.01.20 |
D-DAY 계산 및 파폭, 사파리 버그 (0) | 2013.01.16 |
소셜네트워크에 글올리기 (0) | 2012.12.10 |
스크립트로 form 관리 (0) | 2012.07.20 |