[JS] hoisting
2021.07.09
호이스팅(hoisting)이란, 자바스크립트에서 변수의 선언, 함수의 선언 등을 코드의 맨 위로 올려주는 것이라고 간단하게 설명할 수 있다. 예시를 보면
console.log(temp);
var temp = 3;
>> 이 경우 console에는 undefined가 나타난다.
변수 선언 타입 중 var는 호이스팅이 적용되는 타입이며 아래와 같이 호이스팅이 되기 때문에 undefined가 출력이 된다.
var temp;
console.log(temp)
temp = 3;
변수 선언 타입 중 let은 var과 다르게 호이스팅이 일어나지 않는데,
console.log(temp);
let temp = 3;
>> 이 경우 console에는 에러가 출력된다.
함수에도 비슷한 사례가 있다.
sum(1,2);
function sum(a, b) {
console.log(a+b)
}
함수 sum()이 선언되기 이전에 사용했음에도 불구하고 잘 작동한다. 호이스팅이 일어났기 때문이다. 하지만 아래와 같은 상황에서는 호이스팅이 일어나지 않는다.
sum(1,2);
let sum = function(a, b) {
console.log(a+b);
}
>> 에러 발생
댓글을 작성해보세요.