데이터와 기능을 포함하는 복합 데이터 타입입니다.
객체는 키-값 쌍으로 구성되어 있으며,
다양한 데이터를 구조적으로 저장하고 관리하는 데 유용합니다.
객체의 기본 개념
객체는 여러 프로퍼티를 가질 수 있으며, 각 프로퍼티는 이름(키)과 값으로 구성됩니다.
객체는 다양한 데이터 타입을 포함할 수 있으며, 다른 객체를 포함할 수도 있습니다.
객체 생성 방법
객체 리터럴
const person = {
name: "홍길동",
age: 30,
isStudent: false
};
가장 간단한 방법으로, 중괄호 {}를 사용하여 객체를 생성합니다.
new Object() 구문
const person = new Object();
person.name = "홍길동";
person.age = 30;
person.isStudent = false;
Object 생성자를 사용하여 객체를 만들 수 있습니다.
클래스
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const person = new Person("홍길동", 30);
ES6에서 도입된 클래스 문법을 사용하여 객체를 생성할 수 있습니다.
프로퍼티 접근
점 표기법 (Dot Notation)
console.log(person.name); // "홍길동" 출력
console.log(person.age); // 30 출력
대괄호 표기법 (Bracket Notation)
console.log(person["name"]); // "홍길동" 출력
console.log(person["age"]); // 30 출력
대괄호를 사용하여 문자열로 프로퍼티 이름을 지정할 수 있습니다.
주로 동적으로 프로퍼티에 접근할 때 사용됩니다.
메서드
const person = {
name: "홍길동",
age: 30,
greet: function() {
console.log(`안녕하세요, 저는 ${this.name}입니다.`);
}
};
person.greet(); // "안녕하세요, 저는 홍길동입니다." 출력
객체는 함수도 프로퍼티로 가질 수 있으며, 이를 메서드라고 합니다.
객체의 프로퍼티 추가 및 삭제
프로퍼티 추가
person.email = "hong@example.com";
console.log(person.email); // "hong@example.com" 출력
프로퍼티 삭제
delete person.age;
console.log(person.age); // undefined 출력
객체 복사
객체는 참조 타입이므로, 단순히 변수에 다른 객체를 할당하면 같은 객체를 가리키게 됩니다.
Object.assign()
const newPerson = Object.assign({}, person);
전개 연산자 (Spread Operator)
const newPerson = { ...person };
ES6에서 도입된 전개 연산자를 사용하여 객체를 복사할 수 있습니다.
객체의 메서드 및 this
const person = {
name: "홍길동",
greet() {
console.log(`안녕하세요, 저는 ${this.name}입니다.`);
}
};
person.greet(); // "안녕하세요, 저는 홍길동입니다." 출력
this 키워드: 메서드 내에서 this는 해당 메서드를 호출한 객체를 참조합니다.
객체와 JSON
JSON(JavaScript Object Notation)은 객체를 표현하는 형식 중 하나입니다.
JSON은 문자열로 표현되며, 데이터 전송에 주로 사용됩니다.
JSON 문자열을 객체로 변환
const jsonString = '{"name": "홍길동", "age": 30}';
const jsonObject = JSON.parse(jsonString);
객체를 JSON 문자열로 변환
const jsonString = JSON.stringify(person);
댓글