我的HTML代码,我想知道当我使用text
代替text+
时会发生什么:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Loops</h2>
<div id="demo"></div>
<script>
var cars = ["BMW", "Volvo", "Saab", "Ford", "Fiat", "Audi"];
var text = "";
var i;
for (i = 0; i < cars.length; i++) {
text+=cars[i]+"<br>";
document.getElementById("demo").innerHTML = text;
}
</script>
</body>
</html>
答案 0 :(得分:1)
text+=cars[i]
此代码的含义是您将cars数组的第i个索引添加到字符串'text'的末尾。它可以改写如下,
text = text + cars[i]
因此document.getElementById("demo").innerHTML = text;
告诉浏览器使用text
id = "demo"
变量的内容
对于for
变量的text
循环值的每次迭代都会被传入。因为text+=cars[i]+"<br>";
在document.getElementById("demo").innerHTML = text;
之前,此值会根据驻留的元素而变化在i
数组的cars
索引中。
在第一次迭代i = 0
,因此数组BMW
的第一个元素成为text
的值并传入document.getElementById("demo").innerHTML = text;
在第二次迭代中i = 1并且text
的值变为Volvo
,依此类推,直到你到达数组的末尾并且i < cars.length
不再为真, control退出for
循环。
答案 1 :(得分:1)
=
运算符是assignment operator。它为变量赋值,覆盖旧值:
var a = 'Hello, ';
a = 'World!';
console.log(a); // logs 'World!'
+=
运算符是添加赋值运算符。它为变量的值添加了一个值:
var a = 'Hello, ';
a += 'World!';
console.log(a); // logs 'Hello, World!'
它相当于:
var a = 'Hello, ';
a = a + 'World!';
console.log(a); // logs 'Hello, World!'
答案 2 :(得分:1)
如果您将text +替换为文本,那么您将获得 Audi 作为输出。
如果您的问题是在循环中给出了文字+和 innerHTML ,但仍然没有附加两次?然后答案是 - innerHTML以一种覆盖现有值的方式工作。
答案 3 :(得分:0)
for (i = 0; i < cars.length; i++) {
text+=cars[i]+"<br>";
document.getElementById("demo").innerHTML = text;
}
// This produces :
BMW
Volvo
Saab
Ford
Fiat
Audi
// While this
for (i = 0; i < cars.length; i++) {
text=cars[i]+"<br>";
document.getElementById("demo").innerHTML = text;
}
// Produces :
Audi
因为当你说:
text+=cars[i]+"<br>";
这意味着:(将汽车[i] +&#34;
&#34;添加到文本中,但保留原值)
text= text + cars[i]+"<br>";
但是当你说:
text=cars[i]+"<br>";
您的意思是每次都用cars[i]+"<br>"
替换旧的文本值,这样您最终会得到最后一个值。
++改进:
for (i = 0; i < cars.length; i++) {
text+=cars[i]+"<br>";
}
document.getElementById("demo").innerHTML = text; // use this outside of the loop