我在检查提示数据方面遇到问题。我需要检查,如果提示数据将是字符串,则段落可能显示数据不是数字。但是根据我的代码,当我输入字符串数据时,它会显示奇数或偶数消息,但不会显示“非数字”。有什么问题吗?非常感谢!
答案 0 :(得分:0)
因为您的第二个条件评估为:
!("nonsense" % 2 === 0)
!(NaN % 2 === 0)
!(NaN === 0)
!(false)
true
因此,对于非数字,它将始终显示“奇数”。也许您应该在使用它们之前 验证您的数据。另外,val
将总是 类型“字符串”,您可能要正确解析它:
const num = parseInt(prompt("A number?"), 10);
if(isNaN(num)) {
//...
}
答案 1 :(得分:0)
prompt()
总是返回一个字符串,使用parseInt(prompt(), 10)
将其转换为字符串(10是数字基,例如:2表示其二进制数)< / p>
它将返回一个数字或一个NaN
( N ot A N umber)值。
typeof(NaN) === 'number'
NaN === NaN
将导致错误,请使用Number.isNaN
检查变量的值是否为NaN
if (!(a === b))
与if (a !== b)
请下次在您的代码中以文本形式而不是共享打印屏幕的形式发布代码,以便我们可以ctrl + c,ctrl + v