【发布时间】:2016-10-05 18:45:46
【问题描述】:
我试图了解这两种编写循环的方式之间的区别。两个代码 sn-ps 的结果是不同的。为什么?
-
for 循环:output 变量在循环内,给出不同的结果。
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); } -
for 循环:output 变量在循环之外,给出不同的结果。
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在每次迭代时重新初始化为一个空字符串 -
这实际上与范围无关,而与初始化有关。
-
像
var output这样的变量声明被提升到顶部。output = ""之类的作业不是。 -
您真的想了解不同之处吗?然后展开循环(手动),至少需要 3-4 次迭代。这应该会告诉你不同之处。
标签: javascript variables for-loop