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)提议的一部分,因此不广泛并且由不同供应商完全支持.
我以这种方式使用它并且它工作正常
quantity=prompt("Please enter the quantity","1");
quantity=parseInt(quantity);
if (!isNaN( quantity ))
{
totalAmount=itemPrice*quantity;
}
return totalAmount;
Run Code Online (Sandbox Code Playgroud)