[F-Lab 모각코 챌린지 - 43일차] - Set, WeakMap, WeakSet, typeof, instanceof, this(3)

Big One·2023년 6월 22일
0

F-Lab

목록 보기
15/69

Set 이란?

자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있다.

설명

Set은 값 컬렉션으로, 삽입 순서대로 요소를 순회할 수 있다. Set 내 값은 한 번만 나타날 수 있다. 즉, Set에는 중복이 없다! 유일하다!

참고

NaN, undefined 도 저장 가능하다. NaN !== NaN 이지만 Set에서는 같은 것으로 간주! 근데 NaN은 그런데 왜 배열은?

인스턴스 속성

  • add - Set 객체에 값을 추가한다.
  • size - 크기를 반환한다.
  • clear - Set객체를 전부 비운다.
  • delete - Set객체의 해당 값을 지운다.
  • has - Set객체에 해당 값이 있는지 확인한다. (true, false)

WeakMap 란?

자바스크립트 내장객체이다.

특징

  1. 일반객체는 심볼 아니면 스트링 만 키를 가지는데 Map은 키: 발류 를 객체{}로 설정 할 수도 있다.
    → Map.set({’a’: ‘b’}, {’c’: ‘d’}) 근데 이건 get로 못 가져오므로 const obj = {’a’: ‘b’} 이렇게 변수로 설정하고
    → Map.set(obj, {’c’: ‘d’}); Map.get(obj) 하면 된다.
  2. Map은 반복문 for .. of 로 바로 사용 가능하다.
  3. WeakMap Weak는 약하다. 가비지 컬렉팅이 잘된다. (다른곳에서 강한 참조를 끊어버리면 가비지 컬렉팅 됨) 아래와 같이
let obj = {};
m.set(obj,123);
obj = null; 

하면 일반 Map으로 이루어졌다면 obj 는 가비지 컬렉팅이 되지 않는다 m때문에 
근데? weakMap은 된다 ..

참고

앞으로 키-값 갖는건 Map을 쓰는걸로 !! set , clear, delete

사용처

수정하면 안되는 불변 객체로 써야할 때 .. 부가적인 정보가 필요할 때 쓴다 새 객체 만들어서 하는건 지저분하니까 waekMap 사용하면 된다는데 굳이? 이딴거 볼 바에 Set, Map 공부나 하자 .. 가 내 결론임 ㅎ

WeakSet란?

약하게 유지되는 객체를 컬렉션에 저장할 수 있다.

Set과 다른점은 객체만의 컬렉션이다.

음 .. 쓸 곳 없음 쓸모 없음 스지마셈

결론적으로 WeakMap, WeakSet은 쓰지말자 그냥 있는 객체랑 Map, Set 나 잘 사용하자! 애초에 자바스크립트가 자동으로 가비지컬렉팅 하도록 되어있고 자바스크립트 개발자는 메모리 관리를 신경쓰지 않고 코딩을 할 수 있는게 장점인것이다. 그런데 그렇게 만들어진 언어를 가지고 왜 메모리 영역을 신경써가면서 해야돼? 의도와는 전혀 맞지않음 그래서 사용안할거고

typeof

typeof연산자는 피연산자의 평가 전 자료형을 나타내는 문자열을 반환한다.

Map, Set, 등 object로 출력이 되어 구분에 제한이 있다.

instanceof

생성자의 prototype 속성이 객체의 프로토타입 체인 어딘가 존재하는지 판별한다. a instanceof b 하면 a의 프로토타입 체인 어딘가에 b 프로토타입 속성이 있는지 확인한다. 쉽게말하면 a 타입이 b인지?

사용 예시

object instanceof constructor
  • object - 판별할 객체
  • constructor - 판별 목표 함수

설명

instanceof 연산자는 obejct의 프로토타입 체인에 constructor.prototype 이 존재하는지 판별한다.

profile
이번생은 개발자

0개의 댓글