Skip to content

Files

Latest commit

1bcb9c5 · Mar 30, 2025

History

History
64 lines (47 loc) · 2.2 KB

Typeof.md

File metadata and controls

64 lines (47 loc) · 2.2 KB

typeof operator

Summary

typeof 연산자는 JavaScript에서 변수의 타입을 문자열로 반환하는 단항 연산자이다. 주로 런타임에 변수의 타입을 확인하는 데 사용되며, 몇 가지 예외적인 동작에 주의해야 한다.

Details

typeof 연산자의 기본 사용법

typeof는 피연산자의 타입을 문자열 형태로 반환한다. 기본적으로 다음과 같은 결과를 반환한다.

표현식 반환값
typeof 42 "number"
typeof 'hello' "string"
typeof true "boolean"
typeof undefined "undefined"
typeof Symbol() "symbol"
typeof 10n "bigint"
typeof {} "object"
typeof [] "object"
typeof function() {} "function"

Note

typeof는 함수에 대해서만 특별히 "function"을 반환하고, 나머지 모든 객체는 "object"를 반환한다.

null 타입의 예외

typeof null"object"를 반환한다. 이는 JavaScript 초창기 설계 실수이며, 지금까지 호환성 유지 차원에서 그대로 남아 있는 버그이다.

typeof null; // "object"

Caution

null은 실제로 객체가 아니며, 타입 확인 시 주의해야 한다.

배열과 객체의 구분

typeof로는 배열과 일반 객체를 구분할 수 없다. 둘 다 "object"를 반환하기 때문이다.

typeof []; // "object"
typeof {}; // "object"

배열인지 여부를 확인할 때는 Array.isArray()를 사용해야 한다.

Array.isArray([]); // true

선언되지 않은 변수 처리

선언되지 않은 변수에 typeof를 사용하면 ReferenceError가 발생하지 않고 "undefined"를 반환한다. 이는 typeof만의 특징이다.

typeof notDeclared; // "undefined"

Tip

선언 여부와 무관하게 안전하게 타입을 확인할 수 있다는 점에서 typeof는 유용하다.

Reference

link: External reference