0

考虑以下代码:

var postValue = "99";
var number = new Number(postValue); //also tried var number = parseInt(postValue);
if (isNaN(number)) { 
              alert('please enter a number');
                        }

为什么 isNan(number) 在这两种情况下都是假的?

4

3 回答 3

2

isNAN=“不是数字”。这意味着,如果isNaN(number) === false,则number IS 是一个数字:

var postValue = "99";
var number = parseInt(postValue);
if (isNaN(number)) { 
    alert('please enter a number');
}
于 2013-09-18T08:58:06.563 回答
1

parseInt()会将您的字符串转换为整数。为此,它从字符串左侧读取字符以找到尽可能多的数字字符,然后返回该数字。

在这种情况下,由于"99"都是数字字符,因此结果是数字 99。这很明显是“非数字”,因此isNaN返回 false。

isNaN如果输入字符串以非数字开头,则返回 true。

于 2013-09-18T09:00:50.343 回答
0

isNaN(): 不是数字,当参数不是数字时会返回 false。你的代码就是这种情况。在这两种情况下,您总是会得到一个数字。

于 2013-09-18T09:00:54.293 回答