Original article: JavaScript Data Types: Typeof Explained

typeof는 호출했을 때 변수의 타입을 반환하는 자바스크립트 키워드입니다. 이를 사용하여 함수 매개변수의 유효성을 검사하거나 변수가 정의되어 있는지 확인할 수 있습니다. 그 외에 다른 용도들도 있습니다.

typeof 연산자는 코드에서 변수의 타입을 쉽게 확인할 수 있는 방법이기 때문에 유용합니다. 이것은 자바스크립트가 동적 타입 언어이기 때문에 중요합니다. 이는 변수를 생성할 때 타입을 할당하지 않아도 된다는 뜻입니다. 변수는 이런 식으로 제한이 되지 않으므로 프로그램의 실행 중에 타입이 바뀔 수 있습니다.

예제:

var x = 12345; // number
x = 'string'; // string
x = { key: 'value' }; // object

위의 예제에서 볼 수 있듯이, 자바스크립트의 변수는 프로그램이 실행되는 동안 타입이 바뀔 수 있습니다. 프로그래머로서 이를 추적하기는 어려울 수 있고, 여기서 typeof 연산자가 유용합니다.

typeof 연산자는 변수의 현재 타입을 나타내는 문자열을 반환합니다. typeof(변수) 또는 typeof 변수로 입력하여 사용합니다. 이전 예제로 돌아가서 각 단계의 변수 x의 타입을 확인하는데 이를 사용할 수 있습니다.

var x = 12345;
console.log(typeof x) // number
x = 'string';
console.log(typeof x) // string
x = { key: 'value' };
console.log(typeof x) // object

이는 함수 안에서 변수의 타입을 확인하고 적절히 계속해 나가는 데 유용할 수 있습니다.

문자열이나 숫자 변수를 가져올 수 있게 하는 함수의 예제입니다.
예제:

function doSomething(x) {
  if(typeof(x) === 'string') {
    alert('x is a string')
  } else if(typeof(x) === 'number') {
    alert('x is a number')
  }
}

typeof 연산자가 유용할 수 있는 또 다른 방법은 코드 안에서 액세스하려고 시도하기 전에 변수가 정의되어 있는지 확인하는 것입니다. 이는 만약에 정의되어 있지 않은 변수에 액세스를 시도하려고 할 때 발생할 수 있는 프로그램 오류를 막을 수 있습니다.

function(x){
  if (typeof(x) === 'undefined') {
    console.log('variable x is not defined');
    return;
  }
  // continue with function here...
}

typeof 연산자의 결과는 숫자를 확인할 때 항상 기대했던 결과를 주지는 않을 것입니다.
숫자는 여러 가지 이유로 Nan(Not A Number : 숫자가 아님) 값으로 바뀔 수 있습니다.

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

아마도 오브젝트 안의 숫자에 액세스하는 것을 잊어서 오브젝트 자체에 숫자를 곱하려고 시도했을 수도 있습니다.

var x = 1;
var y = { number: 2 };
console.log(x * y); // NaN
console.log(typeof (x * y)); // number

이것이 유용한 유효성 검사 방법임에도 불구하고 자바스크립트는 좀 이상한 부분이 있고 그중의 하나는 특정 명령어에 대한 typeof의 결과이기 때문에 주의해야 합니다. 예를 들어 자바스크립트에서는 많은 것들이 단지 objects로 취급됩니다.

var x = [1,2,3,4];
console.log(typeof x)  // object

console.log(typeof null)  // object




만약 이글이 도움이 되었다면, 트윗해 주세요.

무료로 코딩하는 법을 배우세요. freeCodeCamp의 오픈 소스 과정은 4만 명이 넘는 사람들이 개발자로 직업을 얻도록 도왔습니다. 시작하기.