据我所知,Prompt只返回String类型的值。那么,下面的代码如何正常工作?
var a = prompt('Number or String? Verify now!');
if(!isNaN(a)){
alert('This is number.');
}
else alert('This is string.')
从https://www.w3schools.com/jsref/jsref_isNaN.asp,全局isNaN()函数,将测试值转换为数字,然后测试它。
isNaN()函数确定值是否为非法数字(非数字)。
如果值等于NaN,则此函数返回true。否则返回false。
此函数与Number specific Number.isNaN()方法不同。
全局isNaN()函数,将测试值转换为Number,然后对其进行测试。
Number.isNaN()不会将值转换为Number,并且对于任何不是Number类型的值都不会返回true。
isFinite(value)将其参数转换为数字,如果它是常规数字,则返回true,而不是NaN / Infinity / -Infinity:
alert( isFinite("15") ); // true
alert( isFinite("str") ); // false, because a special value: NaN
有时isFinite用于验证字符串值是否为常规数字,因此请检查此代码
var a = prompt('Number or String?现在验证!');
if(isFinite(a)){
alert('This is number.');
}
else alert('This is not number.')