javascript - 当答案超出数字范围或不是数字时执行

标签 javascript nan do-while

我创建了一个简单的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/

相关文章:

python - numpy:NaN 和掩码数组之间的区别

python - 在 Pandas 中将 NaN 转换为 'category' 时遇到问题

Python即使满足条件也无法退出while循环

C 程序 Do while 不起作用

java - 后退按钮在模拟器上工作,但在 Android 设备上不起作用

javascript - 类型 'srcset' 上不存在属性 'DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>'

Javascript 日期验证 - 年份和句号

javascript - BLOB URL 的自定义名称

gnuplot - 在 gnuplot 中,使用 "set datafile missing",如何同时忽略 "nan"和 "-nan"?

php - 处理 "if"内的 "do"语句