【发布时间】:2018-01-27 18:07:45
【问题描述】:
我创建了一个简单的prompt,它允许用户输入一个介于 1 和 10 之间的数字。首先我将 answer 从一个字符串更改为一个数字。其次,我检查answer 是介于 1 和 10 之间还是 NaN。如果 answer 在 1 和 10 或 NaN 之外,则循环运行并再次检查。 while 正确检测数字是否小于 1 或大于 10,但它不能正确检测 answer == NaN。我不确定为什么它不适用于字母,因为alert 表示当我输入字母时答案 = NaN。谁能看到我做错了什么?
var answer;
do {
answer = prompt("Enter a number between 1 and 10.");
answer = Number(answer);
}
while (answer < 1 || answer > 10 || answer == NaN);
alert(answer);
【问题讨论】:
-
NaN !== NaN。赞美IEEE754。使用Number.isNaN。否则,answer == NaN将总是为假。 -
如果你不想在互联网爆炸中失败,也可以直接
isNaN:p
标签: javascript nan do-while