소개
게시글
질문&답변
ws.has(arr) 문의 입니다.
이게 이제 누군가가 arr = null 로 수정했어도 이미 ws 변수에서 arr를 참조하고 있으니까 그 자체만으로 가비지 컬렉션 대상이 안되고 유지되는거 아니냐 하시는 것 같은데 잘 보시면은 강사님 말씀처럼 WeakSet이 애초에 약한 참조를 하도록 만들어 졌어요. 만약 강한 참조를 하게 되면 arr = null을 해도 컬렉션 대상 안되거든요? 근데 약한 참조라서 null을 하게 되면 수집 대상이 되는 거라고 알고 있습니다. 그냥 강사님 말을 복붙한거져. 근데 왜?! 이런 거잖습니까? 거기에 대해서 말씀드리면은 메모리 때문에 그래요. JS개발하면 보통 메모리 신경 잘 안쓰는 사람 많은데 Weakset은 객체를 약한 참조로 저장하고 내부 데이터나 객체의 상태는 저장안해요. 감싸고 있는 객체 레퍼런스 주소만 저장하는거에요. 그리고 객체가 다른 곳에서 참조되지 않을 때 가비지 컬렉터가 스윽 보다가 해당되면 지워버리고 메모리 사용을 줄이는 컨셉인거죠. 이런 패턴, 약한 참조를 걸어두는 방식은 이벤트 리스너와 콜백 그리고 DOM 트리 구조에서 UI 업데이트할때도 쓰입니다. 이벤트 리스너가 WeakMap에 저장되면, 해당 객체가 더 이상 참조되지 않을 때 가비지 컬렉터에 의해 객체가 수집됩니다. 그리고 WeakMap에서 해당 객체와 연결된 이벤트 리스너도 자동으로 제거됩니다.
- 4
- 2
- 144
질문&답변
타입 관련 궁금한 점이 있습니다.
typeof: - 기본 데이터 타입(e.x. undefined, boolean, number, string, symbol, bigint, function) - 객체 타입을 구분하는 데 제한적(배열과 일반 객체 모두 'object'로 반환)Object.prototype.toString.call: - 정확한 데이터 타입 - 객체의 정확한 내부 클래스 이름 반환 시(e.x. 배열, 정규 표현식, 날짜 등)
- 1
- 1
- 152
질문&답변
ES5라면 어떻게 구현해야 할까요?
IIFE로 클로저 변수 캡쳐하신 거라면 다른 방법은 아무래도 콜백으로 넣어야할 함수를 addEventListener 에 바인딩 시키고 매개변수로 i 설정하는 것 정도 될 것 같아요
- 0
- 1
- 248
질문&답변
selectedTab 관련
data에 정의되지 않은 selectedTab은 created 훅에서는 가능합니다. 그러나 Vue의 반응형 시스템이 적용되지 않아서 클릭 이벤트를 바인딩해도 UI에 적용되지 않습니다.
- 1
- 1
- 201
고민있어요
TypeScript intellisense is disabled on template 에러 해결
- 1
- 0
- 860
질문&답변
Call back함수와 Promise에 대한 비교
안녕하세요! 지나가다 보게 되었습니다, 다른 접근이라는 것이 어떤 말씀이신지는 모르겠네요. 콜백함수는 기존의 특별한 선언이나 문법적인 특징을 가지고 있는 것이 아니라 코드 실행 시점을 구분 짓는 걸로 알고 있어요. 그래서 제게 콜백함수와 프로미스가 다른 접근이 될 수 있다는 것은 이해가 잘 안갔던 것 같습니다! 역사적으로 콜백함수와 프로미스는 특별한 것이 아니라, 기존 콜백함수가 가지고 있었던 "절차적 사고의 위배" 또는 "코드 인덴팅" 이슈를 개선하기 위해 나온 것이라고 이해하시면 될 것 같아요!
- 1
- 1
- 229
질문&답변
npm i 로 설치되는 packges.json의 디펜던시 내용에 대해 궁금합니다.
개발 시: 둘 다 설치 배포 시: dependencies 구분하는 이유: 용량 줄이려고 이상입니다.
- 0
- 1
- 292
질문&답변
vscode 자동실행?
@최재형 검색 결과
- 0
- 2
- 705
질문&답변
default 값으로 vue 2 선택하고 누르면 계속 이런 에러가 뜨는데 해결방법이 있을까요ㅠ
npm 자체를 재설치 하시거나, yarn 명령어로 vue2를 설치해보세요!
- 1
- 2
- 240
질문&답변
Vuex 를 설치/등록한 이후로 npm 서버가 실행이 되지 않습니다
다른 툴로 설치해보세요. yarn add vuex
- 1
- 3
- 440