2022/02/07 TIL
위코드 pre-study 3주차 수업을 참고/인용하여 글을 작성하였습니다.
📌 Pre-study 3주차 키워드 정리
- 객체란 무엇이며 필요한 이유
객체란 자바스크립트의 오브젝트를 말한다. 참조형 데이터 타입이며,
여러종류의 데이터를 묶음으로 관리하는 데이터 타입이다.
오브젝트는 키값과, 벨류로 구성되어 있고 중괄호로 묶어서 표현한다.
// object = {key : value}
{name: 'Code Kim', isDeveloper : true};
객체 안에 또 다른 객체가 존재할 수 있으며, 배열도 존재할 수 있다.
배열의 요소들은 인덱스로 구분 지을 수 있지만 객체는 속성을 나타내는 키와 그에 대한 값으로 구성되어 있기 때문에 데이터를 직관적으로 관리할 수 있고 코드의 유지보수가 용이하다.
- 객체에서 property, key, value
객체의 데이터를 property 라고 한다. property를 구성하고 있는 것이 key 와 value 이며 key는 value 에 대응하는 값이라고 할 수 있으며 value 는 숫자, 스트링, 배열, 객체 등이 될 수 있다.
- 객체에 접근 방법이 두 가지인 이유
객체에 접근하는 방법은 dot notation, bracket notation 두가지가 있다.
dot notation은 숫자로 된 데이터나 띄어쓰기가 포함된 키에 접근할 수 없기 때문에 이러한 경우에는 braket notation을 사용한다.
또한 키를 가지고 새로운 변수로 선언하는 경우에도 dot notation을 사용할 수 없다.
정리하자면, braket notation는 숫자, 공백, 변수를 사용할 수 있다!
** 변수에 저장된 키값에 접근하고 싶을때는 무조건 ['']로 접근!!
let myself = {
name : 'xxziiko',
age : 25,
'friends' : ['sol','열무'],
};
let myKey = 'friends';
console.log(myself['friends']);
console.log(myself[myKey]); // ['은솔','열무']
console.log(myself.myKey); // undefined
/* 자바스크립트 오브젝트에서는 존재하지 않는 키를 출력할 때,
undefined 로 뜬다. */
- 객체의 값을 추가,수정, 삭제하는 방법
dat notation이나 braket notation을 사용하여 객체의 값을 추가하거나 수정할 수 있다.
// 객체 추가
const obj = {};
obj.name = 'xxziiko';
obj.age = 27;
// const obj = { name: 'xxziiko', age: 27 }
// 객체 수정
obj.age = 50;
// obj = { name: 'xxziiko', age: 50 }
콘솔에 직접 입력하여 결과값을 확인해보았다.
또한 delete 연산자를 이용하여 객체의 값을 제거할 수 있다.
let obj = {
name : "xxziiko",
age : 27,
dog : 'yeolmu',
};
delete obj.age;
/*delete를 이용하여 배열의 특정 인덱스를 지워버리면
그 자리는 undefined 으로 됨*/
let result = [
{name : 'xxziiko'},
{age : 27},
{dog : 'yeolmu'}
];
delete result[0]; // [ undefined , {age : 27}, {dog : 'yeolmu'} ];
- 객체와 배열이 섞인 복잡한 객체 만들어서 접근하는 방법
- 배열의 타입이 객체인 이유
배열은 자바스크립트에서 원시 자료형이 아닌 객체형에 속하기 때문에 객체처럼 동작한다.
객체는 순서를 고려하지 않고 만들어진 자료구조이고 배열은 순서가 있는 자료를 저장하고 관리하는 용도에 최적화되어 있는 자료구조이다.
따라서 배열은 객체에서 순서를 고려해야 할 때 사용하기 위해 존재하기 때문에 원시 자료형이 아닌 객체타입인 것이다.