JavaScript Object와 Array의 핵심 차이점(한국어)

자바스크립트에서 "Object"와 "Array"는 매우 밀접한 관계를 가진 두 가지의 기본 객체 타입입니다. 이 둘을 비교할 때 다음과 같은 유사점과 차이점을 볼 수 있습니다.

공통점

  • "Array"는 "Object"의 하위 클래스 또는 서브 프로토타입입니다. 즉, "Array"는 새로운 데이터 타입이 아닙니다. "Array"와 "Object"는 동일한 데이터 타입인 "object"를 공유합니다.
  • "Array" 객체에 대한 typeof 연산자의 결과는 "object"입니다.

차이점

  • "instanceof" 연산자를 사용하여 "Array" 객체를 확인할 때 "Array"와 일치합니다. 또한 "Array"는 "Object"의 하위 클래스이기 때문에 "Object"와도 일치합니다.
  • "Object"의 객체는 "Array" 객체와 동일한 문법을 사용하여 인덱스로 접근할 수 있는 속성을 가질 수 있습니다.
  • "Object"의 객체는 "Array"의 객체가 아닙니다. 즉, "Object"의 인스턴스는 배열이 아닙니다.
  • "Array"의 객체는 또한 "Object"의 객체입니다. 즉, 배열은 객체의 일종입니다.

예시를 통해 객체와 배열 간의 차이를 이해할 수 있을 것입니다. 객체는 키-값 쌍의 모음이며, 배열은 순서가 있는 요소들의 집합입니다. 그리고 배열은 객체의 일종이기 때문에 배열은 객체의 모든 속성과 메서드를 상속받습니다.

JavaScript Object와 Array의 핵심 차이점

// Object 예시
let person = {
    name: "John",
    age: 30,
    address: {
        city: "New York",
        zip: "10001"
    }
};

// Array 예시
let colors = ["red", "green", "blue"];

console.log(typeof person); // "object"
console.log(typeof colors); // "object"

console.log(person instanceof Object); // true
console.log(person instanceof Array); // false
console.log(colors instanceof Object); // true
console.log(colors instanceof Array); // true

console.log(person.address.city); // "New York"
console.log(colors[0]); // "red"