开始使用 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+=b
是 a=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>
标签。
我正在学习 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]
代码段?如果是这样,代码片段会是什么样子,如果不是
,我应该将什么插入 HTMLtext
?
再次感谢!
a+=b
是 a=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>
标签。