javascript - 如果输入为 NaN,如何使提示重复

标签 javascript prompt nan

我有这个快速代码片段:

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条款我检查两者 NaN0 :这些是 parseInt 可以返回的唯一虚假值。 .

关于javascript - 如果输入为 NaN,如何使提示重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824405/

相关文章:

javascript - 用javascript中的数据替换html元素

javascript - DatePicker react 是否将 "value"属性作为输入?

javascript - 将 URL 参数传递给 Python

javascript - 使用带有 Node 的简单 js 提示到 Electron 应用程序

.htaccess - htaccess htpasswd 没有提示

javascript - 在 Google Maps API v3 中将图像添加到 InfoBox

maven-3 - maven 可以提示输入用户名和密码吗

c - 当链接源中的函数定义与 header 中的函数原型(prototype)不同时,gcc 不会发出警告

javascript - 我在最后一个函数中的数字旁边得到 NaN

floating-point - 哪些浮点运算会产生安静/信号 NaN?