728x90
- 호이스팅(Hoisting)의 개념
1. 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효범위의 최상단에 선언하는 것
2. 인터프리터가 변수와 함수의 메모리 공간으 선언 전에 미리 할당하는 것
3. 코드를 실행하기 전 변수선언/함수선언을 해당 스코프의 최상단으로 끌어올리는게 아니라
코드를 실행하기 전 변수선언/함수선언이 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상
4. var을 통해 정의된 변수의 선언문을 유효범위의 최상단으로 끌어올리는 행위 = '선언과 할당의 분리'
5. var로 선언한 표현식이나 function 선언문 등을 실행단계에서 해당 Scope의 맨 위로 올리는 것
- 호이스팅을 하는 이유
변수생성과 초기화(선언과 할당)가 분리되어 진행되기 때문이다.
- var와 함수 선언식만 호이스팅의 대상이 된다.
let, const, 함수 표현식으로 선언한 함수는 호이스팅이 적용되지 않는다.
출처
https://developer.mozilla.org/ko/docs/Glossary/Hoisting
https://gmlwjd9405.github.io/2019/04/22/javascript-hoisting.html
https://hanamon.kr/javascript-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85%EC%9D%B4%EB%9E%80-hoisting/
728x90
'JavaScript' 카테고리의 다른 글
filter 사용법 (0) | 2022.06.10 |
---|---|
함수 선언식, 함수 표현식, 화살표 함수 (0) | 2022.05.11 |
[javaScript] name을 이용한 데이터 저장 (0) | 2021.08.27 |
[jquery] 정리해야 할거 (0) | 2021.08.20 |
[javascript] undefined, null값 을 빈값("")으로 바꾸기 (0) | 2021.08.09 |