我有这个快速代码片段:
var sQuantity = 0
if (sQuantity = 0 || isNaN(sQuantity)) {
(sQuantity = parseInt(prompt("Let's begin compiling our student database. How many students would you like to enter?", "Number of Students")));
(sQuantity = 1);
}
但是当我这样运行时,提示根本不出现。显然我弄错了这应该如何运作。如果没有输入整数,如何得到不断弹出的提示?我可能完全错了......
最佳答案
这是一种可能的方法:
var sQuantity;
do {
sQuantity = parseInt(prompt('Prompt message', 'Default prompt value'), 10);
} while (!sQuantity);
您的问题中显示的代码有两个错误。首先,您实际上并没有检查 sQuantity
等于 0 - 您分配 0 给它(使用 = 0
;至少应该是 == 0
)。准确的说,实际赋值的是0 || isNaN(sQuantity)
的结果。它是 false
- 如 sQuantity
在赋值时等于 0,而不是 NaN
.
但更重要的是第二个缺陷:检查 sQuantity
没有任何意义。值 if
在您为其分配了一些值之后。你知道它等于 0,对吧?
唯一有意义的情况是当您使用循环时:首先为变量分配一些值(作为 prompt
的结果),然后在循环条件中检查该值。
在我的示例中,我使用了 do-while
循环,因为您显然必须显示 prompt
至少向用户发送一次。与!sQuantity
条款我检查两者 NaN
和0
:这些是 parseInt
可以返回的唯一虚假值。 .
关于javascript - 如果输入为 NaN,如何使提示重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824405/