두 번째 자바스크립트 데이터구조(데이터의 집합) = 객체(Object)
배열처럼 객체도 일종의 구조에 여러 데이터 조각을 저장하게 해준다.
배열은 데이터의 순서가 중요하지만, 객체는 그렇지 않고 대신 key-value pair 또는 properties를 이용해서 데이터를 저장한다.
property = 두 개의 정보가 모인 것, 레이블과 같은 키(key)와 값(value)로 구성된다. 이 둘의 쌍(pair)을 이루게 되고, 객체는 이 쌍들의 집합이다.
객체를 상상할 때, 데이터 조각들인 property가 순서나 우선순위 없이 구불거리고 형체가 없는 자루 덩어리 안에 들어있는 것으로 생각하면 편하다.
정보(값,value)에 레이블을 지정해서 이름(키,key)을 부여.
key-value가 모여 하나의 property 완성
위 과정을 거친 여러 properties = 객체(Object)
const fitBitData = {
totalSteps : 308727,
// totalSteps = key, 308727 = value, tatalSteps(key)+308727(value) = property
totalMiles : 211.7,
avgCaloriesBurn : 5755,
workoutsThisWeek : ‘5 of 7’.
avgGoodSleep : ‘2:13’
};
typeof[] // object
const person = {firstName : ‘Mick’, lastName : ‘Jagger’}
객체에서 중괄호{}는 선언할 때 뿐이다.
엑세스 방법 1. 변수[“key”]
엑세스 방법 2. 변수.key
주의) 객체에서 만드는 모든 key들은 문자열로 변환된다.
변수 같은 유동적인 것을 키로 쓰고 싶다면 대괄호를 쓰는 방법1을 사용해야 한다.
예시
const years = [2020 : “BAD”, 2021 : “GOOD”]
let birthYear = 2020;
years[birthYear]; // BAD
years.birthYear; // undefined
추가) 다중접근(일차원적인)
let total = product.name + product.inStock + product.price;
total // Gummy Bears true 1.99
추가 - 방법1) variable.new-key = new-value;
방법2) variable[‘new-key’] = new-value;
수정 - 방법1) variable.key = update-value;
방법2) variable[‘key’] = update-value;
ARRARYS + OBJECTS
구성1) 객체로 구성된 배열
const shoppingCart = [
{
product : ‘milk-coffee’,
price : 3000,
quantity : 2
},
{
product : ‘yogurt’,
price : 6000,
quantity : 1
}
]
shoppingCart[2].price; // 6000
구성2) 객체 안에 객체
const student = {
name : ‘son’,
exams: {
Korean : 99,
Math : 30,
English : 79
}
}
student.exams.Korean; // 99