객체는 propery name
을 통해 이름이 있는 여러 값들을 묶을 때 활용할 수 있고,
배열은 index
를 통해 순서가 있는 여러 값들을 묶을 때 유용하게 활용할 수 있다.
ES2015에서 객체와 비슷한 Map
, 배열과 비슷한 Set
이라는 데이터 구조가 생겨 어떤 특징이 있는지 알아보자
데이터를 저장하는 점에서 객체와 비슷하지만 할당연산자를 통해 값을 추가하고 점 표기법이나 대괄호 표기법으로 접근하는 일반 객체와 다르게
Map
은 메서드를 통해서 값을 추가하거나 접근할 수 있다.
new
키워드를 이용 Map
을 만들 수 있고 메서드를 통해 Map
안의 여러 값들을 다룰 수 있다.
undefined
를 반환true
, 아니면 false
를 반환length
같은 역할 // Map 생성
const codeit = new Map();
// set 메소드
codeit.set('title', '문자열 key');
codeit.set(2017, '숫자형 key');
codeit.set(true, '불린형 key');
// get 메소드
console.log(codeit.get(2017)); // 숫자형 key
console.log(codeit.get(true)); // 불린형 key
console.log(codeit.get('title')); // 문자열 key
// has 메소드
console.log(codeit.has('title')); // true
console.log(codeit.has('name')); // false
// size 프로퍼티
console.log(codeit.size); // 3
// delete 메소드
codeit.delete(true);
console.log(codeit.get(true)); // undefined
console.log(codeit.size); // 2
// clear 메소드
codeit.clear();
console.log(codeit.get(2017)); // undefined
console.log(codeit.size); // 0
여러 개의 값을 순서대로 저장한다는 점에서 배열과 비슷하다.