1. 클로저에 대해 설명해주세요.
클로저는 선언됐을때 그때의 렉시컬 스코프를 기억하는 함수입니다. 자바스크립트에서 모든 함수들을 Environment라는 프로퍼티를 가지는데 여기에 외부 함수의 변수의 참조값이 저장되어 외부 함수의 변수에 접근이 가능합니다.
https://enjoydev.life/blog/javascript/6-closure
JavaScript의 클로저(Closure)란? (feat. React의 useState)
JavaScript의 클로저의 원리를 쉽게 배워보고 어떤 상황에 사용되는지 알아보도록 하겠습니다.
enjoydev.life
2. 클로저의 단점과 해결방법에 대해 설명해주세요.
클로저는 외부환경의 변수를 계속 기억하고 있기 때문에 가비지컬랙터의 대상이 되지 않아 메모리 누수가 일어날 수 있다는 단점이 있습니다. 이때 null을 할당해줌으로써 메모리를 해제시킬 수 있습니다.
'Private > 면접' 카테고리의 다른 글
프론트엔드 면접(이벤트 루프) (0) | 2024.11.13 |
---|---|
프론트엔드 면접(이미지 최적화) (0) | 2024.11.12 |
프론트엔드 면접(실행컨텍스트, 스코프 체인) (0) | 2024.11.11 |
프론트엔드 면접(reflow, repaint) (0) | 2024.11.10 |
프론트엔드 면접(Sync, Async, 자바스크립트의 동작 원리, Call Stack, TaskQueue, Event Loop) (0) | 2024.11.08 |