본문 바로가기

프로그래밍/[javascript] 자바스크립트

[javascript] instanceof 연산자 설명 및 예제

by GenieIT* 2024. 11. 14.

728x90
반응형
반응형
728x90

 

1. instanceof 연산자

  • JavaScript에서 instanceof 연산자는 특정 객체가 특정 클래스(또는 생성자 함수)에서 생성된 인스턴스인지 확인하는 데 사용됩니다. 이를 통해 객체의 유형을 판단하고, 코드에서 객체가 올바른 클래스나 타입을 가졌는지 검사할 수 있습니다.

 

2. 문법

  • object: 검사할 대상 객체입니다.
  • Constructor: 객체의 원형(prototype)을 기준으로 검사할 생성자 함수 또는 클래스입니다.
  • 반환값 (true): object가 Constructor 또는 그 하위 클래스의 인스턴스일 경우
  • 반환값 (false): object가 Constructor와 관련이 없는 경우
object instanceof Constructor

 

3. 기본 예제

  • 아래 예제는 쉽게 설명하자면, myDog 객체가 속해 있느냐 없느냐의 차이를 보여주는 예제입니다.
  • myDog 객체는 배열과는 상관 없기 때문에 false 값이 출력됩니다.
class Animal {}
class Dog extends Animal {}

const myDog = new Dog();

console.log(myDog instanceof Dog);      // true
console.log(myDog instanceof Animal);   // true (상속 관계이므로)
console.log(myDog instanceof Object);   // true (모든 객체는 Object를 상속)
console.log(myDog instanceof Array);    // false (Array와는 관련 없음)

 

4. 활용 예제

  • 배열 타입은 Array와 Object 둘 다의 인스턴스로 인식됩니다.
const myArray = [1, 2, 3];
console.log(myArray instanceof Array);   // true
console.log(myArray instanceof Object);  // true (Array는 Object의 하위 타입)

 

5. 주의 사항

  • 숫자나 문자열 같은 기본형은 instanceof로 확인할 수 없습니다.
  • 기본형을 검사하려면 typeof를 사용해야 합니다.
console.log(123 instanceof Number); 	// false
console.log("apple" instanceof String);	// false

 

6. 마치며

  • 자바스크립트 instanceof 연산자는 객체가 특정 클래스 또는 생성자의 인스턴스인지 확인할 때 유용합니다.
  • 프로토타입 체인을 검사하여 객체가 지정된 생성자를 상속받았는지 확인합니다.
  • 기본형 데이터 타입에는 사용할 수 없으며, 모든 객체는 Object의 인스턴스로 간주됩니다.

 

 

728x90
반응형