객체는 하나의 변수에 여러 속성을 지정할 수 있도록 해주는 자바스크립트의 참조형 데이터 타입 중 하나입니다. 객체는 key(속성이름) value(속성 값) property(속성)으로 이루어져있는데 배열과는 달리 순서는 중요하지 않습니다.
객체가 필요한 이유는 자바스크립트가 객체 기반의 스크립트 언어이기 때문입니다. 원시타입을 제외한 나머지들 전부가 객체입니다. 객체는 데이터를 의미하는 property 와 데이터를 참조,조작할 수 있는 method로 구성되어 있는데 객체는 그 둘을 모두 포함하는 구조화를 할 수 있기 때문에 유용합니다. 또한 코드 유지 보수에도 편리합니다.
- 객체에서 property, key, value
property : object의 속성. property 내에 key와 value로 구성된다.
key:빈 문자열을 포함하는 모든 문자열 또는 심벌값
value:자바스크립트에서 사용할 수 있는 모든 값
키값이 네이밍 규칙을 준수 했는가에 따라 다르게 사용하기 때문이다. dot notation은 이 규칙이 준수 되었을때 권장되는 것이고 bracket notation은 혼용하여 사용이 가능한 것이다.
추가, 수정시 : dot noation 으로 사용시 추가/수정- key.(추가/수정할 속성 이름)=(추가/수정할 속성 값); --숫자로 시작x변수포함x
bracket notation 으로 사용시 추가/수정-key[(추가/수정할 속성 이름)]=(추가/수정할 속성 값);
삭제시 : delete key.(삭제할 속성 이름);
delete key.[(삭제할 속성 이름)];
- 객체와 배열이 섞인 복잡한 객체 만들어서 접근하는 방법
let myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];
let foundValue = myPlants[1].list[1]; // let foundValue = myPlants[1]['list'][1]
console.log(foundValue); //"pine"
순서가 있는 목록을 만들 때 객체를 사용하면 순서와 관련된 메서드가 없어 불편하기 때문에 이를 보완하는 존재가 배열이라 배열의 타입은 객체가 된다.