728x90
- 때때로 변수들의 타입을 감지할 필요가 있다.
- 간혹 변수 타입을 이용한 조건문으로 돔의 조작이 필요하다거나 하는 등. 그럴 때는 아래의 연산자를 쓰면 된다.
typeof
- typeof는 변수의 타입을 대체적으로 감지해주는 연산자이다.
- 이 연산자를 쓰면 변수의 타입을 감지하여 해당 변수의 자료형을 문자열로 반환해주는 역할을 한다. 아래의 예시를 보자.
var a = ''; // 문자열
var b = []; // 배열
var c = {}; // 객체
var d = 0; // 숫자
typeof a // result -> 'string'
typeof b // result -> 'object'
typeof c // result -> 'object'
typeof d // result -> 'number'
- 이처럼 변수의 타입 즉, 자료형을 문자열로 반환하여 출력해준다. 이것을 조건문에 응용하여 다룰수도 있다.
- 그런데, 분명 배열과 객체를 구분하여 선언한 b와 c를 같은 'object'로 반환하였다.
- typeof는 이 두 자료형을 따로 구분하지 못하고 'object'타입으로 모두 구분하기 때문에 다른 방법을 써야한다.
constructor
- constructor는 typeof와 다르게 해당 변수의 자료형을 정확하게 구분해준다.
- 즉, 자료형의 prototype을 구분하는 속성이다. 때문에 typeof연산자와는 쓰임이 다르다.
- typeof는 typeof [parameter name]으로 하여 출력을 볼 수 있는 반면,
constructor는 [parameter name].constructor === TYPE 으로 해당 자료형을 논리적으로 출력해준다. 아래의 예시를 보자.
var a = ''; // 문자열
var b = []; // 배열
var c = {}; // 객체
var d = 0; // 숫자
a.constructor === String // result -> true
b.constructor === Array // result -> true
c.constructor === Object // result -> true
d.constructor === Number // result -> true
이런식으로 사용하면 된다. 또한 클래스로 하여금 적용할 수도 있으며, 쓰임새는 다양하다.
728x90