JavaScript
호이스팅(Hoisting)
ahleum
2022. 4. 18. 19:16
호이스팅이란?
- 함수 선언부가 유효범위 최상단으로 끌어올려지는 현상
함수가 실행되기 전에 안에 있는 변수들을 범위의 최 상단으로 끌어올리는 것
호이스팅시 변수의 선언과 초기화(undefined으로 ) 같이 시켜버림
const a=7
doble()
const doble = function (){
console.log(a*2)
}
// 에러가 뜨며 나타나지 않는다
doble이라는 함수 표현을 아래에 하게 되면 함수가 선언될 때 아직 생성이 되지 않았기 때문에
함수가 실행되지 않는다.
const a=7
doble()
function doble(){
console.log(a*2)
}
// 14 출력
하지만 함수 선언으로 표현을 하게 되면 호이스팅이 일어나며 함수가 최상단으로 끌어올려지며
함수가 실행이 된다.
그렇기 때문에 호이스팅을 이용하여
함수의 이름을 보고 대략적으로 어떤 함수인지 예상을 할 수 있기 때문에
함수는 아래쪽으로 이동하여 좀 더 읽기 쉽게 작성할 수 있다.