JavaScript 変数では、関数の先頭に「プッシュ」されます。JavaScript の変数には、C、C++、Java、および C# のような「中かっこ」スコープではなく、関数スコープがあります。
これは、あなた (開発者) が手動で一番上にプッシュしたのと同じコードです。
var func = complicated_function() {
var localvar = 0;
// lots of code
if (something) {
localvar = 35;
}
// lots of code
}
変数を 1 つの関数の「上」に宣言すると、役に立ちますか? 少なくとも宣言は分離されています。
function whatever() {
var localvar = 0;
var func = function() {
var something = true;
// lots of code
if (something) {
localvar = 35;
}
// lots of code
};
func();
alert(localvar);
}
whatever();
これが jsFiddle です: http://jsfiddle.net/Gjjqx/
クロックフォードを参照してください。
http://javascript.crockford.com/code.html
JavaScript にはブロック スコープがないため、ブロックで変数を定義すると、他の C ファミリー言語の経験があるプログラマーが混乱する可能性があります。関数の先頭ですべての変数を定義します。