티스토리 뷰
반응형
자바스크립트에서 객체란, 숫자, 문자열, 불 값, null, undefined를 제외한 모든 값이다. 객체는 실제 값이 아닌 참조하는 값으로 처리된다. 따라서 객체는 참조를 가지고 있다고 말할 수 있다.
1. Set()
Set() 메서드는 주로 배열의 중복 값을 제거하기 위해 사용된다. 예약어 new와 같이 작성한다.
1
2
3
4
5
6
7
8
9
|
const array = [1, 2, 3, 1];
const set = new Set(array);
console.log(set); // {1, 2, 3}
console.log(toString.call(set)); // [object Set]
const newArray = [...set]; // 스프레드 문법 사용하여 객체로 변형하기
console.log(newArray); // [1, 2, 3]
console.log(toString.call(newArray)); // [object Array]
|
cs |
2. WeakSet()
우선, WeakSet()은 Set()과 사용하는 방식은 동일하다.
1
2
3
4
|
const array = [1, 2, 3, 4, 5];
const weakArray = new WeakSet();
weakArray.add(array); // [1, 2, 3, 4, 5]
|
cs |
다른 점이 있다면, 참조를 가지고 있는 객체만 저장이 가능하다. 위에서 설명했듯이 기본 타입(숫자, 문자열, 불 값, null, undefined)을 제외한 모든 값이 객체이며 객체는 참조를 가진다.
weakArray에 WeakSet을 적용하면, 객체가 아닌 값은 담을 수 없고 에러가 뜬다.
1
2
3
4
5
6
7
8
9
|
const weakArray = new WeakSet();
weakArray.add([1, 2, 3]); // [1, 2, 3]
weakArray.add(function() {}); // function(){}
weakArray.add({name: "Kim", age: 33}); // {name: "Kim", age: 33}
weakArray.add(12345); // Uncaught TypeError: Invalid value used in weak set
weakArray.add(null); // Uncaught TypeError: Invalid value used in weak set
weakArray.add("가나다"); // Uncaught TypeError: Invalid value used in weak set
|
cs |
반응형
'JavaScript' 카테고리의 다른 글
[Javascript] arguments의 개념과 활용 (1) | 2021.10.28 |
---|---|
[Javascript] 프로토타입 방식 클래스와 ES6 class 비교 (0) | 2021.10.27 |
[Javascript] 배열 중복 제거 Set() / filter() + indexOf() / forEach() + includes() (0) | 2021.10.24 |
[Javascript] 구조분해 할당(Destructuring) - 클릭 이벤트 객체 전달 (0) | 2021.10.24 |
[Javascript] from() 메서드 사용해 배열로 만들기 (0) | 2021.10.24 |