私はループを書くこれらの2つの方法の違いを理解しようとしています。両方のコードスニペットの結果は異なります。どうして? forループforループ(Javascript)の外部に結果変数を保存することの違いは何ですか?
:変数がループ内にある出力が、異なる結果を与えます。 forループ
for (var n = 1; n <= 100; n++) { var output = ""; if (n % 3 == 0) output += "Fizz"; if (n % 5 == 0) output += "Buzz"; console.log(output || n); }
:変数がループの外側にある出力が、異なる結果を与えます。両方の場合において
var output = ""; for (var n = 1; n <= 100; n++) { if (n % 3 == 0) output += "Fizz"; if (n % 5 == 0) output += "Buzz"; console.log(output || n); }
1.結果が異なる場合は、明確にする必要があります。 2.最初のケースでは、 'output'はすべての繰り返しで空の文字列に再初期化されます。 – UnholySheep
これは実際には初期化についてのものではありません。 – Pointy
'var output'のような変数宣言は、先頭に持ち上げられます。 'output =" "'のような代入はそうではありません。 – Oriol