JavaScriptの可変リフト
JavaScriptは、関数と変数の宣言は、関数の先頭に発生します。
JavaScriptは、変数が使用後に宣言することができ、つまり、変数が最初に使用する前に宣言することができます。
次の2つの例は、同じ結果が得られます:
例1
X = 5; // 変数xは、5に設定されています
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = xという; // Xは、要素に表示されます
varのx; // 宣言のx
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = xという; // Xは、要素に表示されます
varのx; // 宣言のx
»をお試しください
例2
varのx; // 宣言のx
X = 5; // 変数xは、5に設定されています
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = xという; // Xは、要素に表示されます
X = 5; // 変数xは、5に設定されています
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = xという; // Xは、要素に表示されます
»をお試しください
あなたが理解する必要があり、上記の例を理解するために」(可変リフト)を巻き上げを。」
可変リフト:関数宣言と変数の宣言は、常に静かにメソッド本体の上部に「昇格」されて通訳になります。
JavaScriptの初期化は改善されません
JavaScriptの変数の宣言は初期化されていない、増加します。
次の2つの例は同じではありません結果:
例1
VARのx = 5; // 初期化のx
するvar Y = 7; // Yを初期化します
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = X + "" + yの ; // xとyを表示
するvar Y = 7; // Yを初期化します
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = X + "" + yの ; // xとyを表示
»をお試しください
例2
VARのx = 5; // 初期化のx
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = X + "" + yの ; // xとyを表示
するvar Y = 7; // Yを初期化します
elemは=のdocument.getElementById( "デモ") ; // 要素を探します
elem.innerHTML = X + "" + yの ; // xとyを表示
するvar Y = 7; // Yを初期化します
»をお試しください
Y例2は、変数宣言(varの各y)が改善されているので、これは、出力定義されていませんが、初期化(Y = 7)が増加しないので、変数yは、未定義の変数です。
例2次のコードのようになります。
var x = 5; // 初始化 x var y; // 声明 y elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x + " " + y; // 显示 x 和 y y = 7; // 设置 y 为 7
頭の中であなたの変数を宣言します
ほとんどのプログラマはJavaScriptの可変リフトを知らないために。
プログラマがよく変数を理解されていない場合はいくつかの問題になりやすい自分の書かれた手順を向上させることができます。
これらの問題を回避するために、我々は通常、各スコープの開始前に、これらの変数を宣言し、これは通常のJavaScriptの構文解析ステップ、私たちを理解しやすいです。
JavaScriptの厳格モード(strictモード)が宣言されていない変数を使用することが許可されていません。 次の章では、「strictモード(strictモード)」を学習します。 |