객체(object)와 속성(property)
▶ 객체(object)
· 객체는 중괄호({} ) 를 통해 만들어짐
▶ 객체(object)의 속성(property)
· 객체 내부에 있는 값을 속성(property) 이라고 한다.
· 구성
속성명(Property Name) + 속성값(Property Value)
아래 예시로 보자면 name: '홍길동' → 요런 것들이 속성(property) 에 해당됨
· 객체 안의 속성(property)들은 쉼표(, ) 로 구분한다.
▶기본형 - 속성
{
속성명: 속성값,
속성명: 속성값,
속성명: 속성값
}
▶ 예시
{
name : '홍길동' ,
bornYear : 1900 ,
isVeryNice : true ,
worstCharacter : null
}
객체(object)의 속성(property)에 접근하기
2가지 방법으로 접근할 수 있다.
1. 점 표기법
2. 대괄호 표기법
1.점 표기법
▶ 기본형
(objectName.propertyName )
(객체명.앞의객체에속하는속성명)
점 표기법의 단점은
속성명(property name)이 문자열 형식('')인 경우, 해당 속성명을 표기할 수 없다.
▶ 예시1
let gilDong = {
name : '홍길동' ,
'born Year' : 1900 ,
isVeryNice : true ,
worstHabit : null ,
bestHabit : {
habitName : '운동' ,
habitLevel : '우수함'
}
};
console .log (gilDong.isVeryNice );
console .log (gilDong.bestHabit .habitName );
▶ 예시1 - 출력된 결과
true
운동
2. 대괄호 표기법
▶ 기본형
(objectName['propertyName' ])
(객체명['앞의객체에속하는속성명' ])
대괄호 표기법으로 작성시, 대괄호 내부는 문자열 형식('', 작은 따옴표)으로 나타내야 한다.
점 표기법과 달리
속성명(property name)이 문자열 형식('')이더라도, 해당 속성명을 표기할 수 있다.
단, 그렇다고 작은 따옴표를 연이어 붙이지는 않음.
그냥 문자열 형식이 아닌 다른 property name들처럼 한 번만 작은 따옴표를 쓰면 된다.
▶예시1
let gilDong = {
name : '홍길동' ,
'born Year' : 1900 ,
isVeryNice : true ,
worstHabit : null ,
bestHabit : {
habitName : '운동' ,
habitLevel : '우수함'
}
};
console .log (gilDong['isVeryNice' ]);
console .log (gilDong.bestHabit ['habitName' ]);
console .log (gilDong['born Year' ]);
console .log (gilDong['born' + ' Year' ]);
let propertyName = 'name' ;
console .log (gilDong[propertyName]);
▶ 예시1 - 출력된 결과
true
운동
1900
1900
홍길동
기존에 있는 속성(property)을 수정, 추가, 삭제하기
▶기존에 있는 속성(property)을 수정
· 예시1
gilDong.name = '허균';
property를 할당시킬 때 작은 따옴표('') 를 잊지 말 것
let gilDong = {
name : '홍길동' ,
'born Year' : 1900 ,
isVeryNice : true ,
worstHabit : null ,
bestHabit : {
habitName : '운동' ,
habitLevel : '우수함'
}
};
gilDong.name = '허균' ;
console .log (gilDong.name );
· 예시1 - 출력된 결과
홍길동
허균
▶기존에 없던 속성(property)을 새로 추가
· 예시1
gilDong.nationality = '대한민국';
property를 할당시킬 때 작은 따옴표('') 를 잊지 말 것
let gilDong = {
name : '홍길동' ,
'born Year' : 1900 ,
isVeryNice : true ,
worstHabit : null ,
bestHabit : {
habitName : '운동' ,
habitLevel : '우수함'
}
};
gilDong.nationality = '대한민국' ;
console .log (gilDong.nationality );
· 예시1 - 출력된 결과
대한민국
▶기존에 있는 속성(property)을 삭제
delete 를 이용한다.
· 예시1
delete gilDong.name; delete gilDong.worstHabit;
let gilDong = {
name : '홍길동' ,
'born Year' : 1900 ,
isVeryNice : true ,
worstHabit : null ,
bestHabit : {
habitName : '운동' ,
habitLevel : '우수함'
}
};
delete gilDong.name ;
delete gilDong.worstHabit ;
console .log (gilDong);
· 예시1 - 출력된 결과
{
'born Year' : 1900 ,
isVeryNice : true ,
bestHabit : { habitName : '운동' , habitLevel : '우수함' }
}
name속성과 worstHabit속성이 삭제되었다.
이 둘은 undefined 처리 된 것임!(중요!!!)