私の質問をする前に、免責事項を述べさせてください。私は何をするvar
のか、ブロックスコープについて、そして可変巻き上げについて知っています。私はそれらのトピックに関する答えを探していません。
関数内で同じ変数に対して変数宣言を複数回使用すると、関数、メモリ、またはパフォーマンスのコストが発生するのではないかと単純に思っています。
次に例を示します。
function foo() {
var i = 0;
while (i++ < 10) {
var j = i * i;
}
}
j
前のものは、上部で宣言された変数を使用して簡単に記述できたはずです。
function foo() {
var i = 0, j;
while (i++ < 10) {
j = i * i;
}
}
これら2つの方法の間に実際の違いがあるのだろうかと思います。言い換えれば、var
キーワードはスコープを確立する以外のことをしますか?
2番目の方法を好むと聞いた理由:
- 最初のメソッドは、実際に関数スコープである場合にブロックスコープの外観を提供します。
- 変数宣言はスコープの一番上に持ち上げられるので、そこで定義する必要があります。
私はこれらの理由は良いと思いますが、主に文体的です。機能、メモリ割り当て、パフォーマンスなどに関係する他の理由はありますか?