자바스크립트 typeof instanceof 연산자 데이터 타입 확인
자바스크립트는 동적 타이핑 언어로, 변수의 타입이 실행 시간에 결정됩니다. 이로 인해 때때로 변수의 타입을 확인하고 제어할 필요가 있습니다. typeof
와 instanceof
는 자바스크립트에서 타입을 확인하는 주요 연산자입니다. 이 글에서는 이 두 연산자의 기본 사용법과 차이점을 살펴보고, 실전 예제를 통해 활용 방법을 알아보겠습니다.
1. typeof 연산자
typeof
연산자는 피연산자의 타입을 문자열 형태로 반환합니다. 다음은 typeof
연산자의 기본 사용법입니다.
console.log(typeof 42); // "number"
console.log(typeof 'hello'); // "string"
console.log(typeof true); // "boolean"
console.log(typeof {}); // "object"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (자바스크립트의 버그)
console.log(typeof function(){}); // "function"
2. instanceof 연산자
instanceof
연산자는 객체가 특정 생성자의 인스턴스인지 여부를 확인합니다. 다음은 instanceof
연산자의 기본 사용법입니다.
let arr = [1, 2, 3];
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true
console.log(arr instanceof RegExp); // false
let date = new Date();
console.log(date instanceof Date); // true
console.log(date instanceof Object); // true
3. typeof와 instanceof의 차이점
typeof
연산자는 원시 타입(숫자, 문자열, 불리언 등)과 함수의 타입을 확인하는 데 유용합니다. 반면, instanceof
연산자는 객체가 특정 클래스의 인스턴스인지 여부를 확인하는 데 사용됩니다. 특히 typeof
는 원시 타입을 확인하는 데 사용되고, instanceof
는 객체 타입을 확인하는 데 더 적합합니다.
typeof
와 instanceof
의 주요 차이점을 다음과 같이 정리할 수 있습니다:
typeof
: 원시 타입과 함수의 타입을 문자열로 반환합니다.instanceof
: 객체가 특정 생성자의 인스턴스인지 여부를 확인합니다.
4. 실전 예제
타입에 따른 함수 동작
함수에서 입력된 인자의 타입에 따라 다른 동작을 수행하도록 만들 수 있습니다.
function process(value) {
if (typeof value === 'string') {
console.log('문자열 처리:', value);
} else if (typeof value === 'number') {
console.log('숫자 처리:', value);
} else if (value instanceof Array) {
console.log('배열 처리:', value);
} else {
console.log('기타 타입 처리:', value);
}
}
process('hello'); // 문자열 처리: hello
process(42); // 숫자 처리: 42
process([1, 2, 3]); // 배열 처리: 1,2,3
객체 타입 확인
객체의 타입을 확인하여 클래스별로 다른 동작을 수행할 수 있습니다.
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
bark() {
console.log('Woof!');
}
}
let myDog = new Dog('Rex');
if (myDog instanceof Dog) {
myDog.bark(); // Woof!
} else {
console.log('This is not a dog.');
}
5. 결론
자바스크립트에서 typeof
와 instanceof
연산자는 데이터 타입을 확인하고 제어하는 데 매우 유용합니다. typeof
는 원시 타입과 함수 타입을 확인하는 데 적합하고, instanceof
는 객체가 특정 클래스의 인스턴스인지 확인하는 데 사용됩니다. 이 두 연산자를 적절히 활용하면 코드의 안정성과 가독성을 높일 수 있습니다.
'프로그래밍 언어 > 자바스크립트' 카테고리의 다른 글
자바스크립트에서 함수 선언하고 호출하는 방법 (0) | 2024.07.19 |
---|---|
자바스크립트 조건문과 반복문 - if, switch, for, while 활용법 (0) | 2024.07.17 |
자바스크립트 삼항 연산자 기본 문법과 실전 예제 (0) | 2024.07.13 |
자바스크립트(JavaScript) 비트 연산자 기본 개념과 활용법 (0) | 2024.07.11 |
자바스크립트 논리 연산자, 간단한 예제에서 고급 활용까지 (0) | 2024.07.09 |