호이스팅(Hoisting)과 클로저(Closure)

2020. 11. 25. 18:02개발 관련 학습정리/Web Front-end

반응형

 

호이스팅 

변수를 선언하고 초기화 했을때 선언 부분이 최상단으로 끌어올려지는 현상으로

변수 및 함수 선언부가 스코프 내 제일 윗쪽으로 올라가게 된다.

 

함수 표현식/함수 선언식은 호이스팅이 적용되지만 let/const와 같은 변수는 호이스팅이 발생하지 않는다.

 

우선순위는 변수가 함수 선언보다 위로 끌어올려지며

코드의 가독성을 위하여 호이스팅을 최소화 하는 것이 좋다.

함수와 변수를 가급적 코드 상단부에 선언함으로 해결할 수 있다.

 

 

 

클로저 

 

 

내부함수가 자신이 선언된 자리의 스코프를 기억하여 자신이 선언되었을때 그 스코프 환경에 접근할 수 있는 함수

내부함수로서 자신이 생성될때의 환경을 기억하는 함수이다.

 

쓰는 이유는 대표적으로 세가지이다.

1. 현재 상태를 기억하고 최신 상태로 유지하기 위하여

2. 전역 변수 사용을 지양하기 위해

3. 정보 은닉

 

 

 

반응형