如何检查节点js中的数据类型-特别是整数

新手上路,请多包涵

我尝试了以下检查数据类型(特别是整数),但没有工作。

 var i = "5";

if(Number(i) = 'NaN')
{
 console.log('This is not number'));
}

原文由 Prem 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 239
2 个回答

我想到了两种测试值类型的方法:

方法一:

您可以使用 isNaN javascript 方法,它确定一个值是否为 NaN 。但是因为在你的情况下你正在测试一个转换为字符串的数值,Javascript 试图猜测值的类型并将其转换为数字 5 而不是 NaN 。这就是为什么如果你 console.log 得出结果,你会惊讶于代码:

 if (isNaN(i)) {
    console.log('This is not number');
}

不会返回任何东西。出于这个原因,更好的选择是方法 2。

方法二:

您可以使用 javascript typeof 方法来测试变量或值的类型

if (typeof i != "number") {
    console.log('This is not number');
}

请注意,我使用的是双等号运算符,因为在这种情况下,值的类型是字符串,但 Javascript 在内部会转换为数字。

将值强制为数字类型的更稳健的方法是使用 Number.isNaN ,它是新 Ecmascript 6 (Harmony) 提案的一部分,因此没有广泛使用,也没有得到不同供应商的完全支持。

原文由 Endre Simo 发布,翻译遵循 CC BY-SA 3.0 许可协议

我以这种方式使用它并且工作正常

quantity=prompt("Please enter the quantity","1");
quantity=parseInt(quantity);
if (!isNaN( quantity ))
{
    totalAmount=itemPrice*quantity;

}
return totalAmount;

原文由 Mayur Gupta 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏