js 添加脚本无法正常工作

js addition script not working properly

以下代码应打印 x 和 y 的 SUM。它适用于 W3 编辑器,但不适用于我的 Sublime?我不明白为什么。

function add () {
    var x = prompt("Enter a number.");
    var y = prompt("Enter another number.");
    var a = x + y;
    alert(a);
    }
<script>
  add();
  </script>

我得到的输出实际上是xy。如果我输入 x=1 和 y=2,我得到 12。
如果我只是在没有函数的情况下将 js 代码打到 body 中,我也会 运行 遇到同样的问题。我找不到我的错误。会不会是我的编辑?

成功

function add () {
    var x =parseInt(prompt("Enter a number."),10);
    var y = parseInt(prompt("Enter another number."),10);
    if ( !isNaN(x) && !isNaN(y) )
    {
      var a = x + y;
      alert(a);
    }
    else
    {
      alert("One of the numbers is not valid");
    }
}

您需要先将从提示中收到的字符串解析为整数。

您可以使用:

function add () {
    var x = Number(prompt("Enter a number."));
    var y = Number(prompt("Enter another number."));
    var a = x + y;
    alert(a);
}

我想是因为提示returns输入字符串。尝试使用

parseInt()

函数。所以

var x = parseInt(prompt("Enter a number."));

这些值是字符串,因此 + 运算符将其视为字符串连接。使用parseInt()生成整数,然后做加法:

function add () {
    // Best to include radix with parseInt
    var x = parseInt(prompt("Enter a number."), 10);
    var y = parseInt(prompt("Enter another number."), 10);
    // Quick and dirty check for NaN
    if(!(x != x) && !(y != y)) {
        var a = x + y;
        alert(a);
    } else {
        alert("Both inputs must be valid integers!");
    }
}

add();

只是为了好玩,这里有一个更短的方法:

function add () {
    var x = +prompt("Enter a number."),
        y = +prompt("Enter another number.");
    alert((!(x != x) && !(y != y)) ? x + y : "Both values must be integers!");
}

add();