开始使用javascript时,遇到了一个问题
Getting started with javascript, got a questions
我正在学习w3school JS初学者教程。下面的代码中有一些我不明白的地方:
<!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为CCD_ 10的html元素的值改变为text
的值。
text += cars[i] + '<br>';
将cars数组的元素i连接到文本,由<br>
标签分隔。
这样想吧,
text+=cars[i] + "<br>";
实际上是
text=text+cars[i]+"<br>";
因此,它将把新单词与现有字符串连接起来,而不是删除旧值。(字符串连接(。
附言:作为一名初学者,与其遵循W3学校,不如去codecademy这样的网站,它可以帮助你在练习和正确解释的同时学习。
不要认为+=
是递增的,那就是++
。
a = a + b
a += b;
这两种说法是一样的。最下面的一个取左侧的变量(a
(,并将右侧附加到它(b
(,然后将其全部分配回左侧(a
(。所以这只是一个简写。
因此,您在代码中所做的是将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>"
在这里,他们这样做实际上只是为了表明这样做没有意义,他们只是想表明到达数组中的每个个体,并将其连接到字符串中,这与使用array.prototype.join((方法相同你也希望
+=不是增量。它在同一个变量中添加(在本例中为串联(并保存结果。
var a +=b;
与相同
var = a + b;
在您的例子中,脚本将所有数组元素连接到一个字符串中,并在它们之间添加<br>
标记。
- Moment/Jquery-一个简单时间线的愚蠢问题
- 问题用moment JS制作一个简单的时间表
- 选中复选框的Jquery/Javascript问题使用输入框操作将行从一个表添加到另一个表
- 一个简单的粘性头jQuery脚本的问题
- 一个承诺换多个承诺-并发问题
- 将一个php变量从js传递到php,并返回内容问题
- 在我的网站上创建一个在1-10之间不断变化的数字时遇到了问题.Javascript
- 图像缩略图库中的“下一个”和“上一个”按钮中的“问题”
- 链接问题:下一个字符包含在<a>TinyMce ui TinyMce中的标签
- 有问题的突出显示(悬停)一个系列,突出显示图表
- 火狐中的多个问题,但在 chrome 中工作正常,没有一个问题
- 为什么我不能强制下载受污染的画布,为什么这是一个安全问题
- 为什么这不起作用?我认为这是一个转换问题
- 从JS到PHP;另一个CORS问题(似乎是)
- 是否从超时内开始间隔是一个问题
- 我需要帮助来解决一个小问题
- 试图修复一个倒计时计时器问题,该问题导致计时器运行,然后在使用Javascript时崩溃约10秒
- 我有一个严重的问题与CRM的触发器,正在开发与GAS
- 自定义样式的复选框-我的JavaScript逻辑问题(一个else分支没有被击中)
- 在IE8上有一个问题——一个脚本可以在其他浏览器上完美地工作