web/javascript
[Javascript] 호이스팅
sungjine
2016. 12. 2. 22:01
반응형
호이스팅이란 변수의 선언이 생성될 때나 초기화할 때가 아닌 가장 최상단에서 선언된다는 것이다.
ex)
{
console.log(num); // undefined
var num = 10;
console.log(num); // 10
},
{
var num;
console.log(num); // undefined
num = 10;
console.log(num); // 10
}
위 두 예제는 호이스팅이 적용되기 때문에 에러를 출력하는 것 대신 undefined와 10을 출력한다. 이것은 위에서 설명한 것과 같이 변수의 선언이 최상단에서 이루어지기 때문인데 함수 안에서도 변수의 선언이 함수 최상단에서 선언이 이루어진다.
ex)
function excemple {
console.log(num); // undefined
var num = 10;
console.log(num); // 10
}
위 예제는 함수 최상단에 변수를 선언하므로 undefined와 10을 출력한다.
ex)
var num = 10;
function excemple {
console.log(num); // undefined
var num = 10;
console.log(num); // 10
}
그리고 만약 위와 같이 작성했다면 이 예제의 위 예제와 같이 함수 안에서 num을 함수 최상단에서 선언하므로 undefined와 10을 출력한다.
반응형