객체란?
- 객체(Object): 나(주체)가 아닌, 다른 실체
- 주체(Subject): 중심이 되는 기준점 (예: 개발자, 강사 등)
생활 속 객체 개념
- 모든 대상은 객체가 될 수 있음
- 물리적 개념: 컴퓨터, 안경, 의자
- 논리적 개념: 강의, 수업, 사용자
- 개발자 입장에서 → 컴퓨터 속에서 객체를 정의(데이터+기능)하여 구성
1. 객체 종류
| 유형 | 설명 |
|---|
| 클래스 기반 객체 | class 키워드로 생성, 자바에서 필수 |
| 클래스 없이 생성된 객체 | {} 중괄호로 직접 생성 (JS에서 자주 사용됨) |
2. 객체 vs 배열 차이점
| 구분 | 배열 [ ] | 객체 { } |
|---|
| 구조 | 순서 있는 값들 | 속성(key)-값 쌍 |
| 호출 방식 | 인덱스로 접근 | 속성명으로 접근 |
| 사용 목적 | 동일한 성질의 값 나열 | 서로 다른 정보 묶기 |
| 예 | [10, 'hello'] | {a: 10, b: 'hello'} |
const var1 = [10, 'hello'];
const var2 = { a: 10, b: 'hi' };
4. 객체 사용법
1) 객체 선언
const person = {
name: "유재석",
age: 30,
job: "개그맨"
};
2) 객체 호출
console.log(person);
console.log(person.name);
console.log(person["job"]);
3) 관련 함수
| 함수 | 설명 |
|---|
Object.keys(obj) | 속성명(key) 배열 반환 |
Object.values(obj) | 속성값(value) 배열 반환 |
Object.entries(obj) | [속성명, 속성값] 배열 반환 |
4) 객체 속성 다루기
let car = { brand: "Hyundai" };
car.model = "Sonata";
car.brand = "Kia";
delete car.model;
console.log("brand" in car);
정리 TIP
- 서로 다른 의미의 값들을 묶을 때 → 객체
- 서로 같은 의미의 값들을 나열할 때 → 배열
- 객체와 배열은 서로 중첩해 사용할 수 있다
const student = {
name: "지민",
scores: [85, 90, 78]
};
const classList = [
{ name: "민수", age: 18 },
{ name: "유진", age: 17 }
];