isNaN()判断跟parseInt()不一致吗?



 <script>
var myString=" " //空格字符

alert(parseInt(myString)); //返回NaN

alert(isNaN(myString));  //返回false


</script>

本人有点疑惑,为什么这两个不都是NaN?

第二个为什么不是true?

isNaN()在处理字符串时调用的什么转换方法?

web前端开发 web HTML html5 JavaScript

蔬菜来看看 9 years, 5 months ago

顾名思义:isNaN 就是说 是不是NaN,如果是的话,就返回true,如果不是的话,就返回false。
NaN的类型是number,myString的类型是string,当然不能是NaN,当然要返回false。
另外parseInt是将一个字符串解析成整数,当这个字符串不能被解析成整数的时候就会返回NaN。
所以你可以这样
isNaN(parseInt(myString));
即可得到true

我是一瓶酱 answered 9 years, 5 months ago

NaN是js里面一个特殊的类型,并不是说只要不是数字就是NaN的,isNaN只能用来判断是不是NaN,不能用来判断是不是数字,当然可以和parseInt结合来判断,parseInt在碰到不能转化的非数字的时候就会返回NaN,这时就可以用isNaN判断

电流表电压表 answered 9 years, 5 months ago

使用isNaN函数
会尝试将其中的参数做类型转换
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN

Number.isNaN(value);//不进行类型转换,如果value不是Number类型,直接返回false

Sunbeam answered 9 years, 5 months ago

Your Answer