繁体   English   中英

JavaScript中的Else if和Else

[英]Else if and Else in JavaScript

我写了一个小的javascript代码,但是有一个问题,该页面无法显示任何内容。 我认为问题出在“ else if ...”或“ else ...”行中,因为如果我注释这两行,则代码可以正常运行

<html>
<head>
    <script language="javascript">
        var var1 = window.prompt("please input");
        var var2 = window.prompt("please input2");
        var1 = parseFloat(var1);
        var2 = parseFloat(var2);

        if (var1< var2) {document.writeln("the second number is bigger")};
        else if (var1> var2) {document.writeln("the first number is bigger")};
        else {document.writeln("They are the same")};
    </script>
</head>
<body>
</body>
</html>

您的JavaScript应该是这样的

 var var1 = window.prompt("please input"); var var2 = window.prompt("please input2"); var1 = parseFloat(var1); var2 = parseFloat(var2); if (var1 < var2) { document.writeln("the second number is bigger"); } else if (var1 > var2) { document.writeln("the first number is bigger"); } else { document.writeln("They are the same"); } 

应该:

<html>
<head>
    <script language="javascript">
        var var1 = window.prompt("please input");
        var var2 = window.prompt("please input2");
        var1 = parseFloat(var1);
        var2 = parseFloat(var2);

        if (var1 < var2) {
            document.writeln("the second number is bigger");
        }
        else if (var1 > var2) {
            document.writeln("the first number is bigger");
        }
        else {
            document.writeln("They are the same");
        }
    </script>
</head>
<body>
</body>
</html>

你的半冒号错了

尝试删除分号; ,从if statements的括号后面开始:

    if (var1< var2) {document.writeln("the second number is bigger")}
    else if (var1> var2) {document.writeln("the first number is bigger")}
    else {document.writeln("They are the same")}

看看这个SO答案: https : //stackoverflow.com/a/17036218/4206206

Essestially,分号不使用结束一组语句,而是结束一个语句。


代码要点,如果您使用的是HTML5,则不需要在脚本标签中使用language="javascript"

<script language="javascript">

可以变得简单

<script>
if (var1< var2) {document.writeln(" ... ")};
                                           ^

您在if,else if和else块末尾的semicolons是您的问题。 他们过早地结束了if块。

只需在比较之前确保您parseFloat ,因为它只是作为字符串进行比较,并且请记住,10在2之前,所以按字符串10 < 2 而且您不需要; 在末尾:

var var1 = window.prompt("please input");
var var2 = window.prompt("please input2");
var1 = parseFloat(var1);
var2 = parseFloat(var2);

if (var1 < var2) {
  document.writeln("the second number is bigger");
} else if (var1 > var2) {
  document.writeln("the first number is bigger");
} else {
  document.writeln("They are the same");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM