为什么在 for 循环外声明变量打印数组的所有元素,而在 for 循环内声明 first 只打印最后一个?
Why does declaring the variable outside the for loop print all the elements of an array but declaring first inside the for loop prints only the last?
我是初学者,如有错误请见谅
第一段代码首先在 for 循环外声明了变量“html”,打印数组的所有元素。
<p id="demo"></p>
<script>
var fruits = ["apple", "banana", "mango", "orange", "strawberry"];
var html = "";
for(var i = 0; i < fruits.length; i++) {
html += "<p>" + fruits[i] + "</p>";
}
document.getElementById("demo").innerHTML = html;
</script>
但是当我在 for 循环中移动变量声明时,只打印数组的最后一个元素。
<p id="demo"></p>
<script>
var fruits = ["apple", "banana", "mango", "orange", "strawberry"];
for(var i = 0; i < fruits.length; i++) {
var html = "";
html += "<p>" + fruits[i] + "</p>";
}
document.getElementById("demo").innerHTML = html;
</script>
这是为什么?
这是因为,当您在循环内声明变量时,每次重复循环时都会声明它。所以循环的最后一个 运行 将声明一个空变量 'html' 然后将元素压入这个数组。所以你的数组中只有一个元素。
我是初学者,如有错误请见谅
第一段代码首先在 for 循环外声明了变量“html”,打印数组的所有元素。
<p id="demo"></p>
<script>
var fruits = ["apple", "banana", "mango", "orange", "strawberry"];
var html = "";
for(var i = 0; i < fruits.length; i++) {
html += "<p>" + fruits[i] + "</p>";
}
document.getElementById("demo").innerHTML = html;
</script>
但是当我在 for 循环中移动变量声明时,只打印数组的最后一个元素。
<p id="demo"></p>
<script>
var fruits = ["apple", "banana", "mango", "orange", "strawberry"];
for(var i = 0; i < fruits.length; i++) {
var html = "";
html += "<p>" + fruits[i] + "</p>";
}
document.getElementById("demo").innerHTML = html;
</script>
这是为什么?
这是因为,当您在循环内声明变量时,每次重复循环时都会声明它。所以循环的最后一个 运行 将声明一个空变量 'html' 然后将元素压入这个数组。所以你的数组中只有一个元素。