考虑以下代码:
var postValue = "99";
var number = new Number(postValue); //also tried var number = parseInt(postValue);
if (isNaN(number)) {
alert('please enter a number');
}
为什么 isNan(number) 在这两种情况下都是假的?
考虑以下代码:
var postValue = "99";
var number = new Number(postValue); //also tried var number = parseInt(postValue);
if (isNaN(number)) {
alert('please enter a number');
}
为什么 isNan(number) 在这两种情况下都是假的?
isNAN
=“不是数字”。这意味着,如果isNaN(number) === false
,则number
IS 是一个数字:
var postValue = "99";
var number = parseInt(postValue);
if (isNaN(number)) {
alert('please enter a number');
}
parseInt()
会将您的字符串转换为整数。为此,它从字符串左侧读取字符以找到尽可能多的数字字符,然后返回该数字。
在这种情况下,由于"99"
都是数字字符,因此结果是数字 99。这很明显是“非数字”,因此isNaN
返回 false。
isNaN
如果输入字符串以非数字开头,则返回 true。
isNaN()
: 不是数字,当参数不是数字时会返回 false。你的代码就是这种情况。在这两种情况下,您总是会得到一个数字。