JavaScript에서 사용되는 변수들이 가리키는 객체의 유형은 항상 유동적으로 변할 수 있기 때문에 변수에 담겨있는 객체(Objects)의 유형을 검사(type checking)하는 일은 자주 있으며 그 방법에는 두 가지가 있다.

첫 번째 방법은 typeof 연산자를 사용하는 방법. 이것은 변수에 담겨있는 객체의 유형을 String 값으로 돌려준다.

// Check to see if our number is actually a string 
if ( typeof num  == "string" )
  // If it is, then parse a number out of it 
  num = parseInt( num );
 
// Check to see if our array is actually a string 
if ( typeof arr == "string" )
  // If that's the case, make an array, splitting on commas 
  arr = arr.split(",");

하지만, 이 방법은 Object와 Arrary 혹은 맞춤 Object를 구분하지 못하고 그냥 “object”로 인식하기 때문에 이것을 구별하려면 모든 JavaScript Object들이 가지고 있는 constructor 속성을 확인하면 된다.

var obj = { an: "object" };
var arr = [ an, arrary ];
var myObj = new MyObject();
 
if ( obj.constructor == Object ) alert('This is an object!');
if ( arr.constructor == Array ) alert('This is an array!');
if ( myObj.constructor == MyObject ) alert('My holy object!');

관련된 주제의 글

댓글을 남겨 주세요