객체 타입은 다양한 타입의 값을 하나로 구성한 자료구조이다.
객체는 0개 이상의 프로퍼티로 구성된 집합이며,
프로퍼티는 키와 값으로 구성된다.
프로퍼티 값이 함수일 경우 메서드라고 한다.
// person 객체
const person = {
// name 프로퍼티, 값: Jay
name: 'Jay',
// returnName 메서드
returnName = function() {
return 'Jay';
}
};
프로퍼티 키와 값으로 사용할수 있는 값은 다음과 같다
프로퍼티 키: string, symbol 타입의 값
프로퍼티 값: 모든 타입의 값
프로퍼티에 접근하는 방법은 두 가지이다.
대괄호 표기법을 사용할 때,
자바스크립트 엔진은 대괄호 내부의 값을 표현식으로 해석한다.
const person = {
name: 'Jay'
};
// 마침표 표기법
person.name
// 대괄호 표기법
person['name']
존재하지 않는 프로퍼티에 접근 시
undefined를 반환한다.
const person = {
name:'Jay'
};
person.age = 10;
person 객체에 존재하지 않는 age 프로퍼티에 값을 할당하면
프로퍼티가 동적으로 생성되고 값이 할당된다.
const person = {
name:'Jay',
person.age = 10
};
person.age = 20;
이미 존재하는 프로퍼티에 값을 할당하면 프로퍼티 값이 갱신된다.
delete 연산자로 객체의 프로퍼티를 삭제할 수 있다.
만약 존재하지 않는 프로퍼티를 삭제하면 에러 없이 무시된다.
const person = {
name:'Jay',
person.age = 20
};
delete person.age;