728x90
Object / Map
Javascript Type
⸰ 원시 타입 : boolean
,null
,undifiend
,number
,string
,symbol
⸰ 객체 타입 : 함수
,배열
,정규표현식
등 원시 타입을 제외한 나머지
Object
⸰ Key :string
,symbol
⸰ Key 순서 보장 X
⸰ Value 는 Key 를 통해서만 접근 가능
⸰ for-in 문으로 반복문 수행 가능 (for-of 문 불가)
⸰ Symbol.iterator 구현 X
const person = {
name: "yeHyun",
gender: "female",
};
for (const prop in person) {
console.log(prop + " : " + person[prop]);
}
/*
name : yeHyun
gender : female
*/
const test = {
1: { a: 1, b: 1 },
4: { a: 4, b: 4 },
2: { a: 2, b: 2 },
3: { a: 3, b: 3 },
};
console.log(test);
// 1:Object, 4:Object, 2:Object, 3: Object
const testValue = Object.keys(test);
console.log(testValue);
// ["1", "2", "3", "4"]
Object 의 Key 를 작성할 때 1, 4, 2, 3 순으로 작성하였지만, Object.keys( ) 메서드에서 배열로 반환될 때, 순서가 보장되지 않았다.
Object 의 Key 가 숫자이면, 오름차순 정렬로 출력
Object 의 Key 가 문자열이면, 작성 순서대로 출력
Map
⸰ Key :모든 값
⸰ Key 삽입 순서 기억
⸰ for-of 문으로 반복문 수행 가능
⸰ Symbol.iterator 구현 O
const person = new Map();
person.set("name", "yeHyun");
person.set("gender", "female");
for (const prop of person) {
console.log(prop);
}
/*
['name', 'yeHyun']
['gender', 'female']
*/
const map = new Map();
map.set(3, 'test1')
map.set(1, 'test2')
map.set(2, 'test3')
for(const v of map){
console.log(v)
}
/*
[3, 'test1']
[1, 'test2']
[2, 'test3']
*/
Map 의 Key 값의 삽입 순서를 기억한다.
728x90
'💠프로그래밍 언어 > JavaScript' 카테고리의 다른 글
[심화] 프로그래스 바 구현하는 방법 (0) | 2024.08.26 |
---|---|
[심화] 비동기 함수의 반복문은 어떻게 사용할까? (0) | 2024.08.05 |
[심화] 비동기 함수 Promise, async/await 파헤치기 (0) | 2024.07.29 |
[심화] 이벤트를 발생시키는 EventEmitter (0) | 2024.07.25 |
[심화] 불변성 / 참조 투명성에 대해 알아보자 (0) | 2024.07.24 |