리코딩 : 자바스크립트(JavaScript)

자바스크립트 7. 객체(Object)

BreezeBm 2020. 10. 7. 23:12

만약에 해리포터에 대한 자료와 정보를 넣고싶을 때, 어떻게 정리하면 좋을까?

1. 일일이 해당하는 정보들을 선언하고 할당한다.

2. 배열을 만들어서 줄줄이 설명한다.

1번은 너무 귀찮고 정보의 양도 많아지고 보기 힘들 것 같고, 2번의 경우에는 1번보다는 조금 정리가 되있겠지만, 정보를 부를때 각각의 index의 값을 알아야 하기때문에 활용도가 떨어진다.

 

정보나 자료를 정리할 때 좋은 방법은 객체 인것 같다. 객체는 키(key)와 값(value)이 쌍(property라고 부른다)으로 이루어져 있다. 

let HarryPotter = {
  birthday : "1980-07-31",
  pureBlood : false,
  job : 'Auror',
  graduatedSchool : 'Hogwarts',
  hogwartsHouse : 'Gryffindor'
};

HarryPotter['job']; // 'Auror'
HarryPotter['pureBlood']; // false

객체를 만들 때에는 중괄호 { }를 사용한다.이런 식으로 키 : 값이 쌍을 이루어서 키에 해당하는 값을 알맞게 넣으면 된다. 모든 자료형의 값이 들어가도 상관이 없다! 그리고 객체의 이름에 대괄호[ ]를 열고 키(꼭 따옴표로 감싸주긔!)을 입력하게 되면, 해당하는 키의 값을 내뱉는다.

꼭!  키-값 쌍은 쉼표(,)로 구분해주어야 한다.

 

다음 코드를 통해서 어떻게 활용할 수 있는지 기록해보자!

HarryPotter.halfBlood = true;
delete HarryPotter.pureBlood;

첫번째 코드는 해리포터라는 객체에 새로운 키-값 쌍을 추가해주었고, 두번째 코드는 해리포터 객체안에 있는 키-값쌍을 제거해 주었다.

 

'in'을 활용해서 프로퍼티의 존재여부를 확인할 수도 있다.

"job" in HarryPotter; // true
"age" in HarryPotter; // false

객체 안에 해당하는 키가 있다면 true, 없다면 false를 내뱉는다. 

객체에서도 역시 반복문을 활용한다면, 단순히 여러번 찍어내거나, 일일이 코드를 짜지않아도 반복적인 일을 처리할 수 있다.

let object = {age : 25};
for (let key in object) {
 if (object[key] >= 20) {
 return true;
 } else {
 return false;
 }
}

각각의 프로퍼티 키를 이용해서 안의 본문을 실행한다. 코드의 의미는 오브젝트안에 있는 키값을 다 도는데, 오브젝트의 밸류 값이 20 이상이면 true를 내뱉고, 아니면 false내뱉는 코드이다.  

 

다음은 무엇을 기록해볼까?