ホイストは、ブラウザがJavaScriptをどのように解釈するかを示す機能であり、それほど使用される機能ではありません。
JavaScriptを解釈するとき、ブラウザーは関数レベルの変数を関数の先頭にスコープします。例:
function AddTwoAndTwo() {
var two = 2;
var result = two + two;
return result;
}
ポストされたコードでは、関数スコープの先頭に「2」と「結果」の両方の変数が存在します(明らかに、変数がそこで宣言されているためです)。ただし、ブラウザーが変数を「巻き上げ」ているため、以下は正当な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;
}
混乱を避けるために、関数の先頭で変数を宣言してください。