typeof 연산자

typeof 연산자는 오퍼랜드에 지정한 변수/리터럴의 데이터를 나타내는 문자열을 반환한다. 바로 구체적인 예를 들어 보자.

							var num = 1;
							$.print(typeof (num));
							
							var str = "안녕하세요."
							$.print(typeof (str));
							
							var flag = true;
							$.print(typeof (flag));
							
							var ary = ['javascript', 'ajax', 'asp.net'];
							$.print(typeof (ary));
							
							var obj = {x:1, y:2};
							$.print(typeof (obj));
						

결과를 보면 알겠지만, typeof 연산자에는 문자열, 숫자, 논리형과 같은 기본 데이터형은 식별할 수 있지만, 배열이나 객체는 어느 쪽이든 똑같이 [object]라고 반환된다는 점에 주의해야 한다. 참고로 문자열, 숫자, 논리형에 대해서도 나중에 언급할 랩퍼 객체로서 선언되어 있는 경우는 역시 [object]라고 인식된다.

만일 객체 중에서 어떠한 종류의 객체인지 좀 더 명확히 알고 싶다면, instanceof 연산자 constructor 프로퍼티를 사용하기 바란다.


랩퍼 객체

JavaScript의 표준적인 데이터형을 다루는 내장형 객체들 중에도 특별히 기본형인 문자열, 숫자, 논리값을 취급하기 위한 객체를 랩퍼 객체라고 부른다. 랩퍼 객체란 "단순히 값에 지나지 않은 기본형의 데이터를 포장해서(랩핑한) 객체로서의 기능을 추가하기 위한 객체"다. 본문에서도 기술했듯이, JavaScript에서는 기본 데이터형과 객체로서의 외견을 갖춘 랩퍼 객체를 자동적으로 상호 호환하기 때문에 애플리케이션 개발자가 이를 의식할 필요가 없다.