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

Pre*_*rem 25 javascript node.js

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

var i = "5";

if(Number(i) = 'NaN')
{
 console.log('This is not number'));
}
Run Code Online (Sandbox Code Playgroud)

End*_*imo 45

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

方法1:

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

if (isNaN(i)) {
    console.log('This is not number');
}
Run Code Online (Sandbox Code Playgroud)

不会退货.因此,更好的选择是方法2.

方法2:

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

if (typeof i != "number") {
    console.log('This is not number');
}
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是double equal运算符,因为在这种情况下,值的类型是一个字符串,但Javascript内部将转换为Number.

将值强制为数字类型的更强大的方法是使用Number.isNaN,它是新的Ecmascript 6(Harmony)提议的一部分,因此不广泛并且由不同供应商完全支持.


May*_*pta 6

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

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

}
return totalAmount;
Run Code Online (Sandbox Code Playgroud)