为什么我不能在javascript中使用else语句呢?

Why can't I use the else statement here for javascript?

本文关键字:else 语句 不能 javascript 为什么      更新时间:2023-09-26

为什么我一直得到错误,意外的else令牌?

var PRIZES = ["a new car", "a broken stapler", "a refrigerator"];
var door = prompt("Choose a door number (1,2,or3)");
var prize = PRIZES[door - 1];
if (prize <= 3 && prize >= 1);{
    alert("you have won " + prize.toUpperCase() + "!!");
}  
else (door === undefined); { alert("not a door"); }

不要在if和else语句后面加上分号。只在语句的末尾使用它们。此外,您需要使用else if而不是else来检查另一个条件表达式。您还需要检查door(而不是prize)是否为<= 3>= 1,如下所示:

var PRIZES = ["a new car", "a broken stapler", "a refrigerator"];
var door = prompt("Choose a door number (1,2,or3)");
var prize = PRIZES[door - 1];
if (door <= 3 && door >= 1)
{
    alert("you have won " + prize.toUpperCase() + "!!");
}  
else if (door === undefined) 
{ 
    alert("not a door"); 
}

顺便说一下,看起来你应该摆脱else if (door === undefined),用else代替它。我还建议将door解析为整数。

因为您正在使用else的条件。如果不满足if条件,则else意味着捕获全部。根据您的需要,使用else if:

var PRIZES = ["a new car", "a broken stapler", "a refrigerator"];
var door = prompt("Choose a door number (1,2,or3)");
var prize = PRIZES[door - 1];
if (prize <= 3 && prize >= 1);{
    alert("you have won " + prize.toUpperCase() + "!!");
}  
else if (door === undefined) {
    alert("not a door");
}

我想我们应该把它简化成这样

if () {
} else {
}

if () {
} else if () {
} else if () {
} else () {
}

没有分号;()之后,实际上你可以跳过javascript中所有的分号因为它会自动添加,我通常只在js文件的开头放一个,像这样

;(function(){})()

另一个需要的时间是在循环中,

for ( ; i < len; i++) {}