■ Symbol 자료형
Symbol 생성하기
var 심볼 = Symbol('마음대로 설명넣기')
Symbol은 유일하고 변경 불가능한 값으로, 다른 값과 충돌하지 않는 고유 식별자를 생성하는 데 사용됩니다.
Symbol 특징
var 심볼 = Symbol('마음대로 설명넣기')
var 심볼2 = Symbol('마음대로 설명넣기')
console.log(심볼 === 심볼2); // false
Symbol은 항상 고유한 값이므로, 동일한 설명을 가진 Symbol이라도 다른 값으로 간주됩니다.
var 심볼 = Symbol.for('마음대로 설명넣기')
var 심볼2 = Symbol.for('마음대로 설명넣기')
console.log(심볼 === 심볼2); // true
전역에서 쓰이는 Symbol을 만들고 싶을 때는 Symbol.for을 사용하면 됩니다.
심볼1과 심볼2는 다른 곳에서 만들었음에도, 전역 심볼로 설명이 같기 때문에 같은 변수로 취급됩니다.
var array = [2,3,4];
console.log(array[Symbol.iterator]);
Array나 Object 자료형에는 기본적으로 붙어있는 Symbol들이 있습니다.
예를 들어 Array 자료형에는 [Symbol.iterator]이라는 이름을 가진 심볼이 있습니다.
해당 심볼은 for of 를 쓸 수 있게 도와주는 Symbol입니다.
참고로만 알아두면 좋습니다.
Symbol 활용
var person = { name : 'Kim', [age] : 100 };
person.weight = 100;
var weight = Symbol('내 진짜 몸무게');
person[weight] = 200;
console.log(person);
// {name: 'Kim', weight: 100, Symbol(내 진짜 몸무게): 200}
Symbol은 주로 Object에서 비밀스러운 key 값을 부여하고 싶을 때 사용합니다.
이렇게 Symbol을 Object 자료형에 넣었을 때에는 반복문을 돌려도 감지하지 못합니다.
■ Map 자료형
Map 자료형 만들기
var person = new Map();
person.set('name', 'Kim');
person.set('age', 20);
person.set([1,2,3], 'arr');
console.log(person);
// Map(3) {'name' => 'Kim', 'age' => 20, Array(3) => 'arr'}
Map은 Object와 비슷한 key-value 형태를 가지는 자료형입니다.
단, Object와는 다르게 화살표를 사용하여 자료의 연관성을 표현합니다.
그리고 key 자리에 숫자나 array, object 등 다른 자료들을 넣을 수가 있습니다.
Map 자료형 다루기
var person = new Map();
person.set('age', 20);
person.get('age'); // 자료 꺼내기
person.delete('age'); // 자료 삭제
person.size; // 자료 갯수 세기
// Map자료 반복문 돌리기
for (var key of person.keys() ){
console.log(key)
}
//자료를 직접 집어넣고 싶으면
var person = new Map([
['age', 20],
['name', 'Kim']
]);
■ Set 자료형
Set 자료형 만들기
var 출석부2 = new Set([ 'john' , 'tom', 'andy', 'tom' ]);
console.log(출석부2);
// Set(3) {'john', 'tom', 'andy'}
Set은 Array 자료형과 비슷하게 생겼지만 중괄호로 표현이 됩니다.
Set의 특징으로는 중복되지 않는 값을 저장하는 자료형이라는 점입니다.
Set 자료형 다루기
var 출석부2 = new Set([ 'john' , 'tom', 'andy', 'tom' ]);
출석부2.add('sally'); //자료더하기
출석부2.has('tom'); //자료있는지 확인
출석부2.size; //자료 몇갠지 세기
Set 자료형을 사용하면 Array의 데이터 중복 제거가 매우 쉽습니다.
var 출석부 = [ 'john' , 'tom', 'andy', 'tom' ];
var 출석부2 = new Set(출석부); //Array를 Set으로 바꾸기(중복 제거)
출석부 = [...출석부2] //Set을 Array로 바꾸기(괄호 벗기고 다시 Array로 만들기)
'JavaScript' 카테고리의 다른 글
JavaScript(커스텀 html 태그 만들기) (0) | 2023.06.28 |
---|---|
JavaScript(for in/for of 반복문) (0) | 2023.06.28 |
JavaScript(Promise와 async, await) (0) | 2023.06.27 |
JavaScript(Event Loop) (0) | 2023.06.27 |
JavaScript(export, import) (0) | 2023.06.20 |