Daily 기술 면접 Day 1

string_main·2022년 11월 3일
0

기술 면접

목록 보기
3/7
post-thumbnail

Q. 클로저에 대해 설명해보세요.

클로저는 함수와 함수가 선언된 렉시컬 환경의 조합입니다.
자바스크립트 엔진은 함수를 어디서 호출했는지가 아니라
함수를 어디에 정의했는지에 따라 상위 스코프를 결정하는데, 이를
렉시컬 스코프라고 합니다. 클로저는 상태가 의도치 않게 변경되지 않도록 상태를 안전하게 은닉하고 특정 함수에게만 상태 변경을 허용하기 위해 사용됩니다.

Q. 호이스팅에 대해 설명해보세요.

호이스팅은 변수 선언문이 코드의 최상단으로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징입니다. 자바스크립트 엔진은 변수 선언이 소스코드의 어디에 있든 상관없이 다른 코드보다 먼저 실행되기 때문에 나타나며, var 키워드로 선언한 변수는 undefined로 초기화되는 반면, let과 const로 선언한 변수는 호이스팅 시 초기화되지 않고 할당되기 전에 참조될 경우 reference error가 발생합니다. 이처럼 변수가 선언되고 변수의 초기화가 이루어지기 전까지 변수를 참조할 수 없는 구간을 TDZ라고 합니다.

profile
FE developer

0개의 댓글