배열처럼 여러 데이터 조각을 저장함
배열에서는 첫번째, 두번째, 세번째 하는 데이터의 순서가 중요하지만
object(객체 리터럴)에서는 키-값(key-value) 또는 프로퍼티를 이용해 데이터 저장
프로퍼티는 두개의 정보가 모인 건데 레이블과 같은 키와 값으로 구성된다.
PROPERTY = KEY + VALUE ;
KEY로 VALUE를 불러올 수 있다.
//오브젝트 생성 방법
const person = {
heigth : 187,
hairColor : 'blue',
e_mail : 'dddd@naver.com',
hobby : ['축구', '야구', '게임'],
country : {
city : 'seoul'
}
}
console.log(person)
//오브젝트에 데이터 접근 방법 오브젝트명.key
console.log(person.heigth); // 187
console.log(person.hobby[0]); //오브젝트 안에 배열의 값도 접근 가능 '축구'
console.log(person.country.city); //오브젝트 안에 오브젝트의 데이터도 접근 가능 'seoul'
//데이터를 밖에서 참조하여 value값을 바꿀 수 있다.
person.heigth = 175;
console.log(person)
//[""]로 데이터에 접근하는 방법
console.log(person["heigth"]); // 175
console.log(person["hobby"][0]); // '축구'
console.log(person["country"]["city"]); // 'seoul'
//키값이 숫자라도 [""]를 이용해서 접근 가능
console.log(years['2030']) or console.log(years['2030'])
//키의 값이 숫자일 때 오브젝트. 으로 접근하면 오류가 남 자동으로 []가 씌워짐
console.log(years[1999])
//key 값이 숫자일 때만 가능 key 값이 문자열일 때는
console.log(years[height])는 왜냐하면 height를 단순 변수라고 생가
오류 발생 ""을 써줘야함
/**
* 객체가 생성될 때 모든 키들의 타입은 stirng으로 변환됨 //value값의 타입이 변하는 것이 아니라 key의 타입이 string으로
*/
.으로 접근하는 것이 더 편하게 보이고 [""]은 구려보이지만
만약 변수를 이용해서 오브젝트 값에 접근하려면 [""]으로 접근해줘야한다.
변수의 값이 접근하려는 오브젝트의 key값이랑 같으면 [""]로 접근할 수 있다.
const years = {
1999 : 'good',
2020 : 'bad',
2030 : '?',
}
// years의 2020키값과 변수 birthYear의 값과 같다
let birthYear = 2020;
console.log(years[birthYear]); // "bad"
//.으로 접근한 경우
console.log(years.birthYear); //undefined가 리턴된다.