开始使用 javascript,有问题

Getting started with javascript, got a questions

我正在学习 JS 的 w3school 初学者教程。下面的代码有些地方我不明白:

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var cars = ["Saab","Volvo","BMW"];
var text = "";
for(var i = 0; i < cars.length; i++) {
text+=cars[i] + "<br>";
}


document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

谁能给我解释一下 text+=cars[i] 的逻辑?我知道 += 表示递增,但我无法理解将数组元素添加到变量文本背后的逻辑。

非常感谢您的快速回复!我有一个跟进问题:是否有替代方法来显示必须使用

的相同类型的信息

var text = "";

text+=cars[i]

代码段?如果是这样,代码片段会是什么样子,如果不是

,我应该将什么插入 HTML

text

?

再次感谢!

a+=ba=a+b 的缩写。在您的情况下,您有 text = text + cars[i] + "<br>".

text 是一个字符串,您正在使用 + 从数组中追加一个值(包含字符串),然后追加 "<br>"

循环结束时 text 的值将是

Saab<br>Volvo<br>BMW<br>

其中 br 代表换行符。这样他们每个人都被打印在新行上。 最后一行代码

document.getElementById("demo").innerHTML = 文本;

将 ID 为 demo 的 html 元素的值更改为 text 的值。

text += cars[i] + '<br>';

将汽车数组的元素 i 连接到文本,由 <br> 标记分隔。

这样想,

text+=cars[i] + "<br>"; 

实际上是

text=text+cars[i]+"<br>";

这样它不会删除旧值,而是将新词与现有字符串连接起来。(字符串连接)。

PS:作为初学者,请访问 codecademy 之类的网站,而不是遵循 W3 Schools 的小建议,这可以帮助您在实践和适当的解释中学习。

不要把+=当成递增的,那是++

a = a + b
a += b;

这两个说法是一样的。底部的变量获取左侧的变量 (a) 并将右侧附加到它 (b),然后将其全部分配回左侧 (a)。所以它只是一个 shorthand.

所以您在代码中所做的是将 cars[i] 中的字符串附加到变量文本中。

这会做同样的事情:

text = text + cars[i] + "<br>";

循环运行后,您将在 text 中拥有以下内容:

Saab<br>Volvo<br>BMW

在javascript中+用于字符串拼接

代码

for(var i = 0; i < cars.length; i++) {
   text+=cars[i] + "<br>";
}

正在从数组中选取每个元素并将“
”连接到它。

如果您在设置 innerHTML 之前控制台记录文本,它看起来像这样 -

"Saab<br>Volvo<br>BMW<br>"

他们这样做实际上只是为了表明这样做毫无意义,他们只是想表明到达数组中的每个人并将其连接成一个字符串,就像您可以用 [=12= 做的一样]() 方法在这里不认为你必须使用,因为它们显示总是连接成一个字符串,如果你愿意的话,你也可以简单地使用里面的每个单独的个体

+= 不是增量。它在同一个变量中添加(在本例中为串联)和保存结果。

var a +=b;

等同于:

var = a + b;

在您的案例中,脚本将所有数组元素连接成一个字符串并在它们之间添加 <br> 标签。