Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 typeof 연산자 완벽 정리: 데이터 타입 확인 방법과 반환값

typeof 연산자란?

typeof 연산자는 자바스크립트에서 피연산자의 데이터 타입을 문자열로 반환하는 단항 연산자(unary operator)입니다. 연산자는 단 하나의 피연산자 바로 앞에 위치하며, 이 피연산자는 숫자, 문자열, 객체 등 어떤 타입이든 될 수 있습니다. typeof 연산자는 피연산자가 숫자면 "number", 문자열이면 "string", 불리언이면 "boolean"을 평가 결과로 반환하며, 이를 통해 해당 값의 데이터 타입을 손쉽게 확인할 수 있습니다.

변수의 타입을 런타임에 검사해야 하는 상황에서 typeof는 가장 기본적이면서도 널리 사용되는 도구입니다.

typeof 연산자의 반환값 목록

다음 표는 typeof 연산자가 각 데이터 타입에 대해 반환하는 문자열 값을 정리한 것입니다.

데이터 타입typeof가 반환하는 문자열
숫자(Number)"number"
문자열(String)"string"
불리언(Boolean)"boolean"
객체(Object)"object"
함수(Function)"function"
정의되지 않음(Undefined)"undefined"
널(Null)"object"

특히 주목할 부분은 null의 typeof 결과가 "object"로 반환된다는 점입니다. 이는 자바스크립트 초창기 구현부터 이어져 온 잘 알려진 역사적 특수 사례로, 하위 호환성을 유지하기 위해 지금까지 그대로 남아 있습니다. 따라서 null 여부를 정확히 판별하려면 typeof 대신 일치 연산자(===)를 사용하는 것이 안전합니다.

사용 예제

다음 코드는 typeof 연산자를 실제로 구현하고 활용하는 방법을 보여줍니다.

<html>
   <body>
      <script>
         var a = 10;
         var b = "String";
         var linebreak = "<br />";

         result = (typeof b == "string" ? "B is String" : "B is Numeric");
         document.write("Result => ");
         document.write(result);
         document.write(linebreak);

         result = (typeof a == "string" ? "A is String" : "A is Numeric");
         document.write("Result => ");
         document.write(result);
         document.write(linebreak);
      </script>
   </body>
</html>

실행 결과

Result => B is String
Result => A is Numeric

위 예제에서 변수 b는 문자열이므로 typeof b == "string" 조건이 참이 되어 "B is String"이 출력되고, 변수 a는 숫자이므로 같은 조건이 거짓이 되어 "A is Numeric"이 출력됩니다. 이처럼 typeof 연산자는 삼항 연산자나 if 문 같은 조건문과 함께 사용하여, 변수의 타입에 따라 서로 다른 로직을 실행해야 할 때 매우 유용하게 활용됩니다.