2

我正在关注 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

?

再次感谢!

4

8 回答 8

0

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

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

于 2015-07-12T14:38:56.663 回答
0

text循环结束时的值将是

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

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

document.getElementById("demo").innerHTML = text;

将具有 id 的 html 元素的值更改demotext.

于 2015-07-12T14:39:24.997 回答
0
text += cars[i] + '<br>';

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

于 2015-07-12T14:39:34.277 回答
0

这样想,

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

实际上是

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

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

PS:作为初学者的小伙伴,建议不要跟随W3学校,请访问codecademy之类的网站,它可以帮助您通过练习和正确的解释来学习。

于 2015-07-12T14:40:05.933 回答
0

不要认为+=是递增,那是++.

a = a + b
a += b;

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

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

这会做同样的事情:

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

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

Saab<br>Volvo<br>BMW
于 2015-07-12T14:40:31.823 回答
0

在 javascript+中用于字符串连接

编码

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

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

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

"Saab<br>Volvo<br>BMW<br>"
于 2015-07-12T14:40:43.453 回答
0

在这里,他们这样做实际上只是为了表明这样做没有意义,他们只是想显示到达数组中的每个人并将其连接成一个字符串,这与您可以使用 Array.prototype.join() 方法做的事情一样不要在这里认为你必须使用它们,因为它们总是连接成一个字符串,如果你愿意,你也可以简单地使用里面的每个人

于 2015-07-12T14:40:53.270 回答
0

+= 不是增量。它正在添加(在这种情况下是连接)并将结果保存在同一个变量中。

var a +=b;

与以下内容相同:

var = a + b;

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

于 2015-07-12T14:41:18.650 回答