isNaN如何验证此代码中仅提示返回字符串的值?

问题描述 投票:0回答:2

据我所知,Prompt只返回String类型的值。那么,下面的代码如何正常工作?

var a = prompt('Number or String? Verify now!');

if(!isNaN(a)){
  alert('This is number.');
}
else alert('This is string.')
javascript prompt
2个回答
1
投票

https://www.w3schools.com/jsref/jsref_isNaN.asp,全局isNaN()函数,将测试值转换为数字,然后测试它。

isNaN()函数确定值是否为非法数字(非数字)。

如果值等于NaN,则此函数返回true。否则返回false。

此函数与Number specific Number.isNaN()方法不同。

全局isNaN()函数,将测试值转换为Number,然后对其进行测试。

Number.isNaN()不会将值转换为Number,并且对于任何不是Number类型的值都不会返回true。


0
投票

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.')
© www.soinside.com 2019 - 2024. All rights reserved.