-
기본자료형/객체 비교하기, 타입 확인하기프론트엔드/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'는 기본 자료형에선 오류가 나니까 써주지 말자.
'프론트엔드 > JavaScript' 카테고리의 다른 글
자바스크립트 배열(Array) (0) 2020.09.21 Object의 분류 - 네이티브 객체, 호스트객체 (0) 2020.09.21 자료, 객체의 복사에 대해서 (0) 2020.09.19 자바스크립트의 클로저(Closure) (0) 2020.09.15 자바스크립트 Object 객체 (0) 2020.09.14