호이 스팅은 브라우저가 Javascript를 해석하는 방법에 대한 기능을 설명하며 그렇게 많이 사용되지는 않습니다.
Javascript를 해석 할 때 브라우저는 함수 시작시 함수 레벨 변수의 범위를 지정합니다. 예:
function AddTwoAndTwo() {
var two = 2;
var result = two + two;
return result;
}
게시 된 코드에서 "two"및 "result"변수는 함수 범위의 시작 부분에 존재합니다 (확실히 선언 된대로). 그러나 브라우저가 변수를 "게양"하기 때문에 다음은 올바른 Javascript 코드가됩니다. .
function AddTwoAndTwo() {
result = 5;
alert(result);
var two = 2;
var result = two + two;
return result;
}
여기서 효과는 선언하기 전에 사용중인 변수가 있으며 특히 전역 범위 변수와 혼동 될 수 있습니다. 예:
var result = 6;
function AddTwoAndTwo() {
alert(result); // should this be 6 or undefined?
var two = 2;
var result = two + two;
return result;
}
혼동을 피하려면 함수 맨 위에 변수를 선언하십시오.