본문 바로가기

Javascript

Object객체를 이용한 자료형 구분

typeof를 이용한 자료형 구분에는 약간 문제가 존재한다.

<script>

   // 변수를 선언합니다.

   var numberFromLiteral = 273;

   var numberFromObject = new Number(273);


   // 자료형을 확인합니다.

   if (typeof (numberFromLiteral) == 'number') {

  alert('numberFromLiteral은 숫자입니다.');

   }

   if (typeof (numberFromObject) == 'number') {

  alert('numberFromObject는 숫자입니다.');

   }

</script>

두 변수 모두 숫자지만, 생성자 함수를 사용해서 만든 숫자는 객체이므로 경고창을 출력하지 않는다. 이 두 대상을 같은 자료형으로 취급하고 싶을 때는 constructor() 를 사용해야한다.


<script>

   // 변수를 선언합니다.

   var numberFromLiteral = 273;

   var numberFromObject = new Number(273);


   // 자료형을 확인합니다.

   if (numberFromLiteral.constructor == Number) {

  alert('numberFromLiteral은 숫자입니다.');

   }

   if (numberFromObject.constructor == Number) {

  alert('numberFromObject는 숫자입니다.');

   }

</script>

위처럼 생성자 함수가 number 생성자 함수인지 비교하면 쉽게 숫자인지 구분할 수 있다. 다른 자료형도 마찬가지이니 활용하도록 하자.

'Javascript' 카테고리의 다른 글

Array 객체 정렬  (0) 2012.07.06
메서드 체이닝 기술  (0) 2012.07.05
ECMAScript 5 추가 속성  (0) 2012.07.05
상속  (0) 2012.07.05
배열과 객체  (0) 2012.06.29