繁体   English   中英

提示js typeof的问题

[英]Problems with prompt js typeof

我在检查提示数据时遇到问题。 我需要检查,如果提示数据是字符串,段落可能会显示数据不是数字。 但是根据我的代码,当我输入字符串数据时,它向我显示奇数或偶数消息,而不是“非数字”。 有什么问题? 非常感谢!

我的代码

prompt()总是返回一个字符串,使用parseInt(prompt(), 10)将其转换为字符串(10 是数字基数,例如:2 表示它是一个二进制数)

它将返回一个数字或一个NaN (N OT A N棕土)值。

typeof(NaN) === 'number'

NaN === NaN将导致 false,使用Number.isNaN检查变量的值是否为 NaN

if (!(a === b))if (a !== b)


请下次将您的代码作为文本而不是它的共享打印屏幕发布,以便我们可以 ctrl+c, ctrl+v 它

因为您的第二个 if 条件评估为:

 !("nonsense" % 2 === 0)
 !(NaN % 2 === 0)
 !(NaN === 0)
 !(false)
 true

因此,对于非数字,它总是会显示奇数。也许您应该使用之前验证您的数据。此外, val始终是“字符串”类型,您可能希望正确解析它:

 const num = parseInt(prompt("A number?"), 10);
 if(isNaN(num)) {
   //...
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM