Language/Javascript
[Javascript] 호이스팅(Hoisting)
sga8
2022. 4. 15. 09:28
728x90
호이스팅(Hoisting)
- 함수 내의 모든 선언들을 해당 함수 유효 범위의 최상단에 선언하는 것
- Javascript Parser가 함수 실행 전 해당 함수를 확인
- 함수 안에 존재하는 변수/함수 선언에 대한 정보를 기억 후 실행
- 유효 범위 : 함수 블록 {} 안에서 유효
- 즉, 함수 내에서 필요한 값 중 아래쪽에 존재하는 내용을 끌어올리는 것.
호이스팅의 대상
- var 변수 선언 / 함수 선언문
- var 변수/함수의 선언만 위로 끌어 올려지며, 할당은 끌어올려지지 않는다.
- let/const 변수 선언과 함수표현식에서는 호이스팅 발생하지 않음
- Hoisting Before
console.log("First Log");
var testVar = "TISTORY";
console.log("Second Log");
let testVar2 = "TISTORY";
- Hoisting After
var testVar;
console.log("First Log");
testVar = "TISTORY";
console.log("Second Log");
let testVar2 = "TISTORY";
728x90