JavaScript - For语句中的If语句

时间:2014-06-03 22:45:41

标签: javascript

我有以下代码,当我删除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

3 个答案:

答案 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”值。换句话说,某些值(如undefined0null等等都是“假的”,并且在使用false时会返回==