const name = '이사벨라';
const nationality = '이탈리아';
const year = 1996;
const month = 3;
const date = 25;
const gender = 'W';
위에서 선언한 변수들을 객체 리터럴로 묶으면
const aboutMe = {
name : '이사벨라',
nationality : '이탈리아',
year : 1996,
month : 3,
date : 25,
gender : 'W',
}
배열과 다르게 객체 리터럴엔 각 속성들에 이름을 붙일 수 있음
name, nationality, year 등은 속성 이름이고
이사벨라, 이탈리아, 1996 등은 속성 값에 해당함
const aboutMe = {
name : '이사벨라',
nationality : '이탈리아',
year : 1996,
month : 3,
date : 25,
gender : 'W',
}
console.log(aboutMe.name); //온점 접근 방식
console.log(aboutMe['name']); //배열 접근 방식
배열 접근 방식: 속성 이름에 띄어쓰기나 온점이 있을 경우 이 방식만 사용해야 함
단, 자료형까지 다 표기를 해야함
aboutMe.gender = 'F';
console.log(aboutMe.gender); //F
aboutMe.job = '개발자';
console.log(aboutMe.job); //개발자
delete aboutMe.job = '개발자';
console.log(aboutMe.job); //undefined
속성 값으로 자바스크립트의 모든 값을 넣을 수 있다. 문자열, 숫자, 불 값, null, undefined도 가능하다. 그리고 함수, 배열, 다른 객체까지도 넣을 수 있다.
객체의 속성 값으로 함수를 넣었을 때 이 속성을 매서드(method)라고 한다.
const debug = {
log: function(value) {
console.log(value);
},
};
debug.log('Hello, Method!');
객체끼리는 비교하면 false가 나옴
{} === {} //false
[] === [] //false
객체끼리 비교하기 위해서는 객체를 변수 안에 저장한 후에 변수를 비교해야 함
const a = {name:'이사벨라'}; //객체 리터럴
const array = [1,2,a]; //배열 리터럴
console.log(a === array[2]); //true
문제
다음과 같이 객체 안에 객체가 있을 때, '이' 값에 접근하는 방법은?
const bella = {
name:{
first:'사벨라',
last:'이',
},
gender:'w',
}
정답
console.log(bella.name.last);