作者:Hydhuyfh________ | 来源:互联网 | 2023-05-16 01:44
1> T.J. Crowder..:
尽管名字"不是数字" typeof NaN
,但是"number"
.对真的.:-) NaN
,like Infinity
,是数字类型.它是为IEEE-754中的数字定义的(浮点数格式Javascript和许多其他编程语言使用;具体来说,Javascript使用现在称为" binary64子格式"的,也称为"双精度").
如果你打电话parseInt
给它无法解析的东西,它将返回NaN
.例如:
var n = parseInt("");
console.log(typeof n); // "number"
console.log(n); // "NaN"
如果你想使用0
for mins
(等),当它是空白的时候,你可以用Javascript的奇怪强大的||
运算符来做到这一点:
mins = parseInt( $("#min").val() ) || 0;
这将给你parseInt
返回的号码,或者0
如果parseInt
返回0
或NaN
.
附注:
如果你打算parseInt
用于用户生成的输入解析,你可能想要使用它的第二个参数,它告诉它使用什么数字基数(10,十进制).例如,n = parseInt(str, 10)
.否则,它会尝试从输入中猜测(大多数情况下,它会处理0x
以十六进制开头的字符串).
parseInt
很乐意在数字后忽略额外的字符.比如str = "4 apples"; n = parseInt(str)
给我们n = 4
.如果您不想要这种行为,可以使用+
(n = +str;
)或Number
(n = Number(str)
),两者都考虑整个字符串.但是他们0x
在开始时都接受意味着十六进制,并且不支持使用基数(数字基数).