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

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

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

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


</script>

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

第二个为什么不是true?

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

阅读 4.9k
3 个回答

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题