1. 程式人生 > >JS中的NaN和isNaN

JS中的NaN和isNaN

一、NaN:not a number 不是個數字的數字型別

但是屬於數字型別

var a = number ('abc');
alert(a);  //NaN
alert(typeof(a));  //number

注意:一旦程式出現NaN,肯定進行非法操作

特性:1.NaN是假的布林值

var a = number ('abc');
if(a){
  alert('真');
}else{
  ('假')
}  //假

2.NaN與自己都不相等

var a = number ('abc');
alert(a===a);  //false

二、isNaN

is not a number 是不是不是一個數字(不是數字)

作用:1.可以判斷某些值是不是數字
返回true or false

2.不喜歡數字,討厭數字

(1).對於數字

alert(isNaN(250)); //false

(2).對於字串。

alert(isNaN('我愛你'));   //true
alert(isNaN('250'));   //false

isNaN是內部基於Number()的判斷,所以對於字串我愛你,Number()返回NaN,則isNaN返回true;對於字串250,Number()先將’250’轉化為數字250,然後isNaN再做出判斷。

(3).對於函式

alert(isNaN(function(){alert(1)}
); //true

(4).對於布林值

alert(isNaN(true));  //false

(5).對於空陣列

alert(isNaN([ ]));  //false

三、HTML中拿到的內容,型別都是字串

所以當需要判斷資料型別時,需要用到isNaN()

window.onload = function (){
	var aInp = document.getElementsByTagName('input');
	var str = '';
	aInp[1].onclick = function (){
		str = aInp[0].value;
		// HTML 中拿到的內容,型別都是字串
// alert( typeof str ); if( isNaN(str) ){ alert( str + '不是數字' ); }else{ alert( str + '是數字' ); } }; };