JavaScript - 타입 확인 방법 (typeof)

자바스크립트에서 객체의 타입을 확인하는 방법을 소개합니다. 자바스크립트는 타입 체크에 엄격한 언어가 아니기 때문에, 변수의 타입이 변경될 수도 있습니다. 그렇기 때문에 객체의 타입이 무엇인지 확인하고 어떤 동작을 처리할 때가 있는데요. 이럴 때 typeof를 사용합니다.

1. typeof로 객체 타입 확인 (Syntax)

typeof는 typeof object 또는 typeof(object)처럼 호출할 수 있으며, 객체의 타입을 확인하고 문자열로 타입을 리턴합니다. 둘 다 사용 가능하지만 typeof()처럼 함수형태로 사용하는 것이 좋을 수 있습니다. typeof object 형태는 typeof 123-456처럼 입력했을 때 typeof 123으로 해석되어 의도와 다르게 동작할 가능성이 있다고 합니다.

let val = 10;
console.log(typeof(val));  // number

val = '10';
console.log(typeof val);  // string

2. 타입 체크 예제 (1)

자바스크립트는 아래와 같은 타입들이 있으며, 타입의 오른쪽에 있는 문자열이 typeof가 출력하는 문자열입니다.

  • String - 'string'
  • Number - 'number'
  • BigInt - 'bigint'
  • Symbol - 'symbol'
  • Boolean - 'boolean'
  • undefined - 'undefined'
  • Function object - 'function'
  • null - 'object'
  • object - 'object'

아래는 typeof로 객체들의 타입을 출력하는 예제입니다. 예제들을 보면 약간 혼란스럽지만 new Boolean()은 object 타입이지만, true 또는 false는 boolean 타입이 됩니다. new String()''도 이와 비슷합니다. 생성자 함수로 생성된 객체는 대부분 object 타입입니다.

console.log(typeof(10));  // number
console.log(typeof('10'));  // string
console.log(typeof(new String(10)));  // string

console.log(typeof(Infinity));  // number
console.log(typeof(NaN));  // number

console.log(typeof([]));  // object
console.log(typeof(Array(5)));  // object

console.log(typeof(true));  // boolean
console.log(typeof(false));  // boolean
console.log(typeof(new Boolean(true)));  // object

console.log(typeof(() => 10));  // function
console.log(typeof(Symbol()));  // symbol
console.log(typeof(null));  // object

console.log(typeof(val));  // undefined
console.log(typeof(undefined));  // undefined

3. 타입 체크 예제 (2)

아래와 같이 조건문을 사용하여 객체가 어떤 타입일 때, 어떤 동작을 처리하도록 구현할 수 있습니다.

let num = 10;
if (typeof(num) === 'number') {
  console.log("Type is number");
}

Output:

Type is number

4. 정의 안된 변수의 타입

정의 안된 변수의 type을 확인해보면 undefined가 출력됩니다.

console.log(typeof(val));  // undefined

5. null의 타입 확인

null을 typeof로 확인해보면 object가 리턴됩니다.

console.log(typeof(null));  // object

6. NaN, Infinity의 타입 확인

NaN, Infinity의 경우 typeof는 모두 number를 리턴합니다.

console.log(typeof(NaN));  // number
console.log(typeof(Infinity));  // number
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha