【发布时间】:2016-01-12 16:32:40
【问题描述】:
根据 JavaScript 文档,在函数中创建的变量是该函数的本地变量。但是,我发现在 for 循环中声明变量时不使用文字 var 会导致意外行为(例如 https://jsfiddle.net/carlesaraguz/ao77ac2L/)
这是为什么呢?
function iterate1() {
var array = ["hello", "world"];
var str = "";
for (i = 0; i < array.length; i++) {
str += "iterate0 --- " + i + ": " + array[i] + "<br>";
iterate2(array);
str += "iterate0 --- " + i + ": " + array[i] + "<br>";
}
document.getElementById("output0").innerHTML = str;
}
function iterate2(arr) {
var str = ""
for (i = 0; i < arr.length; i++) {
str += "iterate1 --- " + i + ": " + arr[i] + "<br>";
}
document.getElementById("output1").innerHTML = str;
}
$(function() {
iterate1();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="output0"></p>
<p id="output1"></p>
【问题讨论】:
-
你应该把相关代码贴到她那里
-
我不想在这里发布代码,因为 JSFiddle 只是作为一个补充示例编写的。我想这个问题更清楚了。
标签: javascript scope