在JavaScript中提示vs提示

时间:2016-06-24 10:30:16

标签: javascript

如果我只想在提示窗口中输入整数,那么在JavaScript中使用round()而不是常规+prompt是否合适?它是否在JavaScript标准/规则中对prompt说了类似的内容?

5 个答案:

答案 0 :(得分:3)

这就是当你在提示之前添加加号时发生的事情,即如下所示

例如: - 1

var a = prompt("Please enter a number");
console.log(a);
typeof(a);

现在在例如(1)当你输入一个数字时如果你在控制台中检查它,它会显示一个数字,但是这个数字介于双引号之间,所以在JavaScript中它是一个字符串,当你控制它时,它也将在typeof中显示。

例如: - 2

var a = +prompt("Please enter a number");
console.log(a);
typeof(a);

现在,当你控制var a和typeof a 例如(2)时,结果会有所不同,因为我们在提示之前添加了+。所以这次我们将提示输入值作为数字而不是字符串。试试你会明白我在说什么。

答案 1 :(得分:2)

没有

unary plus operator会将响应转换为数字,而不是整数。

它可以为您提供浮点值,它可以为您提供NaN

如果你想要一个整数,那么你需要check the response,然后在没有你想要的情况下进行一些错误恢复。

例如:如果它是浮点值,那么您可能只想使用Math.floor进行转换。如果是NaN,那么您可能希望再次prompt该用户。

答案 2 :(得分:0)

+promt("...")的效果是promt命令的结果将转换为数字。

这是一个很好的黑客,但不是一个干净的解决方案。

我建议将用户输入分配给变量,然后检查它,如果它与要求不匹配,则抛出异常或错误消息。

var
    input = prompt("Please enter a positive number"),
    inputNum = parseInt(input, 10);

if (isNaN(inputNum) || inputNum < 1)
    alert("You did not enter a positive number.");

答案 3 :(得分:0)

因此,在任何数据类型前放置+会将其转换为数字。 我尝试过:

typeof(+"100") ==> number
typeof(+"12.34") ==> number
typeof(+true) ==> number
typeof(+false) ==> number

当我尝试使用undefined数据类型时,事情变得很奇怪。例如:

x = +undefined
typeof(x) ==> Number whilst value of variable x is NaN

答案 4 :(得分:-1)

+prompt()只是+之前的prompt(),就像写+"3"+"10"一样。它只是试图将结果转换为数字。