소개
게시글
질문&답변
2024.08.20
ws.has(arr) 문의 입니다.
이게 이제 누군가가 arr = null 로 수정했어도 이미 ws 변수에서 arr를 참조하고 있으니까 그 자체만으로 가비지 컬렉션 대상이 안되고 유지되는거 아니냐 하시는 것 같은데 잘 보시면은 강사님 말씀처럼 WeakSet이 애초에 약한 참조를 하도록 만들어 졌어요. 만약 강한 참조를 하게 되면 arr = null을 해도 컬렉션 대상 안되거든요? 근데 약한 참조라서 null을 하게 되면 수집 대상이 되는 거라고 알고 있습니다. 그냥 강사님 말을 복붙한거져. 근데 왜?! 이런 거잖습니까? 거기에 대해서 말씀드리면은 메모리 때문에 그래요. JS개발하면 보통 메모리 신경 잘 안쓰는 사람 많은데 Weakset은 객체를 약한 참조로 저장하고 내부 데이터나 객체의 상태는 저장안해요. 감싸고 있는 객체 레퍼런스 주소만 저장하는거에요. 그리고 객체가 다른 곳에서 참조되지 않을 때 가비지 컬렉터가 스윽 보다가 해당되면 지워버리고 메모리 사용을 줄이는 컨셉인거죠. 이런 패턴, 약한 참조를 걸어두는 방식은 이벤트 리스너와 콜백 그리고 DOM 트리 구조에서 UI 업데이트할때도 쓰입니다. 이벤트 리스너가 WeakMap에 저장되면, 해당 객체가 더 이상 참조되지 않을 때 가비지 컬렉터에 의해 객체가 수집됩니다. 그리고 WeakMap에서 해당 객체와 연결된 이벤트 리스너도 자동으로 제거됩니다.
- 4
- 2
- 142
질문&답변
2024.08.20
타입 관련 궁금한 점이 있습니다.
typeof: - 기본 데이터 타입(e.x. undefined, boolean, number, string, symbol, bigint, function) - 객체 타입을 구분하는 데 제한적(배열과 일반 객체 모두 'object'로 반환)Object.prototype.toString.call: - 정확한 데이터 타입 - 객체의 정확한 내부 클래스 이름 반환 시(e.x. 배열, 정규 표현식, 날짜 등)
- 1
- 1
- 145
질문&답변
2024.08.19
ES5라면 어떻게 구현해야 할까요?
IIFE로 클로저 변수 캡쳐하신 거라면 다른 방법은 아무래도 콜백으로 넣어야할 함수를 addEventListener 에 바인딩 시키고 매개변수로 i 설정하는 것 정도 될 것 같아요
- 0
- 1
- 240
질문&답변
2024.08.07
selectedTab 관련
data에 정의되지 않은 selectedTab은 created 훅에서는 가능합니다. 그러나 Vue의 반응형 시스템이 적용되지 않아서 클릭 이벤트를 바인딩해도 UI에 적용되지 않습니다.
- 1
- 1
- 200
고민있어요
2022.05.27 07:45
TypeScript intellisense is disabled on template 에러 해결
- 1
- 0
- 847