我有以下代码,当我删除if语句并使用text += "The first car is " + cars[i] + "<br>";
时,它工作正常(除了明显的语法问题。
有人可以查看下面的代码并解释它为什么不起作用吗?
`
<p id="demo"></p>
<script>
var cars = ["BMW", "Audi", "Tesla", "Ferrari", "Mini"];
for (text = "", l = cars.length, i = 0; i < l; i++) {
if(i = 0){
text += "The first car is " + cars[i] + "<br>";
} else if (i < l - 1) {
text += text + "The next car is " + cars[i] + "<br>";
} else {
text += text + "The final car is " + cars[i] + "<br>";
}
}
document.getElementById("demo").innerHTML = text;
</script>
非常感谢 Maudise
答案 0 :(得分:2)
你应该写==
if(i == 0)
=
用于为变量赋值。
==
表示&#34;等于&#34;并用于比较。
答案 1 :(得分:1)
您尚未指定要执行的操作,但if(i = 0)
通常是错误的 - 该行将i
设置为0,然后检查它是否为非零。要检查i
的值而不更改其值,请使用==
:
for (text = "", l = cars.length, i = 0; i < l; i++) {
if(i == 0){
text += "The first car is " + cars[i] + "<br>";
...
答案 2 :(得分:1)
你写了if(i = 0)
。
单个=
是赋值运算符。
您想使用比较运算符,例如==
或===
。
有些回答的人建议==
。但是,我建议使用严格比较运算符:===
。
if(i === 0)
在你给出的代码中,你是否使用了严格的运算符并不重要;但是,理解你为什么或不想使用它是很好的。
例如:
0 == false // ==> true
0 === false // ==> false
==
比较运算符查找“falsy”和“truthy”值。换句话说,某些值(如undefined
,0
,null
等等都是“假的”,并且在使用false
时会返回==
。