我创建了一个简单的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,您可以使用 isNaN()功能。
更新
就浏览器支持而言,Number.isNaN()
除 Internet Explorer 之外的所有主要浏览器均支持。全局isNaN()
IE 支持该功能。
关于javascript - 当答案超出数字范围或不是数字时执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45767070/