ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기본자료형/객체 비교하기, 타입 확인하기
    프론트엔드/JavaScript 2020. 9. 19. 06:29

    타입 확인하기와 자료 비교하기

    C언어,자바는 코드 작성 중 변수에 데이터를 할당할 때 사용자가 직접 자료형을 지정해야 한다.

     

    반면 자바스크립트의 경우 사용자가 변수에 데이터를 할당할 때 자료형을 따로 지정하지 않는다.

     

    컴파일 과정에서 알아서 코드의 내용에 따라 데이터타입이 지정되는 동적 타이핑에 따른 결과다.

     

    하지만 실제로 코드를 작성하다보면 자료형을 비교하거나 타입을 확인해야할 때가 있다.

     

    그럴 때는 어떻게 해야할까?

    타입 확인하기( typeof )

    <body>  
        <script>
    
            var num = 1;
            var string = "일";
            var boolean = true;
            
            var array = [1,2,3,4,5];
            var obj = { 'a':1, 'b':2 };
    
            console.log(typeof num);  // number 출력
            console.log(typeof string);  // string 출력
            console.log(typeof boolean);  // boolean 출력
    
            console.log(typeof array);  // object 출력
            console.log(typeof obj);  // object 출력
    
        </script>
    </body>

     

    타입을 확인할 때는 'typeof' 명령어를 써주면 된다.

     

    typeof + 변수명

     

    위와 같이 명령어를 써주면 해당 변수가 가진 데이터의 데이터형을 확인할 수 있다.

    객체 확인하기 ( instanceof )

    'typeof' 를 사용하면 변수가 가진 데이터의 데이터형을 확인할 수 있다.

     

    반면 객체를 만들었을 때 해당 객체가 어떤 객체에 포함되는지 확인해야될 때가 있다.

     

    그럴 때는 'insataceof' 명령어를 써주면 된다.

     

    어떤 객체에 포함되는지 확인하려는 객체 + instanceof + 확인 대상이 되는 객체

     

    <body>  
        <script>
    
            var array = [1,2,3,4,5];
            var obj = { 'a':1, 'b':2 };
    
            function test(){};
    
            var a = new test();
    
            console.log(array instanceof Array);  // true
            console.log(array instanceof Object);  // true
            
            console.log(obj instanceof Array);  // false
            console.log(obj instanceof Object);  // true
            
            console.log(a instanceof test);  // true
            console.log(a instanceof Object);  // true
    
        </script>
    </body>

     

    코드를 보면 알겠지만 'instanceof'를 사용하면 해당 객체가 어디 속해있는지 판단해 true, false를 돌려준다.

     

    다만 'instanceof'를 사용할 때 주의할 점은 비교하려는 객체로 'Object'로 놓으면 안된다.

     

    왜냐하면 자바스크립트 안의 모든 객체는 'Object'를 상속하고 있기 때문이다.

     

    모로가도 결국 자바스크립트 안의 모든 객체는 'Object'에 속해있기 때문에

     

    항상 'true'가 결과값으로 나온다.

     

    그리고 'instanceof'는 기본 자료형에선 오류가 나니까 써주지 말자.

Designed by Tistory.