상세 컨텐츠

본문 제목

[Javascript] instanceof 와 typeof

Javascript

by 메타샤워 2023. 7. 17. 17:46

본문

기본적으로 자바스크립트의 형비교 메소드는 instanceof 이다. 리턴형은 boolean 이며 다음과 같이 사용한다.

 

if( obj instanceof String ){  
......  
}
자료형을 비교하는 다른 방법이 있는데 바로 typeof 메소드를 사용하는 것이다.
 
typeof 매소드는 자료형을 string으로 반환하며 다음과 같이 사용한다.
 
[ typeof ]
 
설명
식의 데이터 형식을 나타내는 문자열로 반환한다.
 
구문 
typeof (   expression   )       * expression 인수는 형식 정보를 찾는 식
 
참고
typeof 연산자는 형식 정보를 문자열로 반환한다.
typeof는  "Number" , "String" , "Boolean", "Object", "Function" , "undefined" 라는 6가지 형식을 반환한다.
선택적인 요소로 typeof 구문에 간호를 사용할 수도 있다
 
[ instanceof ]
 
설명
개체가 특정 클래스의 인스턴스인지 여부를 나타내는 boolean값으로 반환한다.
 
구문
result = object instanceof class
 
instanceof 연산자 구문은 아래 요소로 구성된다.
 
result   =   임의의 변수
object  =   임의의 개체 식
class   =   정의된 개체 클래스
 
참고
instanceof 연산자는 만약 object가 class의 인스턴스이면 true를 반환, object가 지정된 클래스의 인스턴스가 아니거나 
object가 null이면 false를 반환한다.
 
아래 예제는 instaceof 연산자의 사용법을 보여 준다.
 
function objTest(obj) {  
  
    var i, t, s = "";            // 변수를 만듭니다.  
  
    t = new Array();             // 배열을 만듭니다.  
  
    t["Date"] = Date;            // 배열을 채웁니다.  
  
    t["Object"] = Object;  
  
    t["Array"] = Array;  
  
    for (i in t){  
  
        if (obj instanceof t[i]) {  // obj 클래스를 검사합니다.  
  
        s += "obj is an instance of " + i + "\n";  
  
        }  
  
        else {  
  
        s += "obj is not an instance of " + i + "\n";  
  
        }  
  
    }  
  
    return(s);                   // 문자열을 반환합니다.  
  
}  
  
var obj = new Date();  
  
response.write(objTest(obj));
 
이 문장을 한번 실행해보시기 바랍니다 :)

관련글 더보기