1、什么是NaN?
not a number 不是数字,但是使用typeof检测可以看出它是数字类型;
也就是说它在JS中的数据类型当中,归属于number类型;
JS中的数据类型:number(NaN)、string、boolean、function、undefined、object(obj、[]、{}、null)
2、出现NaN时候说明什么呢?
说明进行了非法的运算操作
本身的特性 NaN的布尔值类型是false;
NaN和它本身都不相等;
3、什么是isNaN?
(不是个数字)
isNaN(); // 可以判断某些值是不是数字类型;
非常讨厌数字,遇到数字后会返回false
其他都返回true;
isNaN(),它的内部调用的是Number()方法
比如:alert(isNaN(2)); // 返回false;
alert(isNaN(‘Here I am‘)) // 返回 true; 因为这里Number()来转换,转换后不是数字
alert(isNaN(‘250‘)) // 返回false ,这里Number()转换后是数字250,所以返回false;
alert(isNaN(true)) // false
所以当Number()转不了的时候,返回NaN,就返回true
实例:(利用isNaN 判断类型)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档</title> 6 7 <script> 8 window.onload = function(){ 9 var alnp = document.getElementsByTagName(‘input‘); 10 var str = ‘‘; 11 12 alnp[1].onclick = function(){ 13 str = alnp[0].value; 14 // 属性操作我们发现,从HTML拿到内容,类型都是字符串; 15 // alert(typeof str); 这里判断出来都是字符串 16 if (isNaN(str)) { 17 alert(str + ‘不是数字‘); 18 }else{ 19 alert(str + ‘是数字‘); 20 }; 21 22 23 } 24 25 } 26 27 </script> 28 29 </head> 30 31 <body> 32 <input type="text"> 33 <input type="button" value="判断是不是数字"> 34 35 </body> 36 </html>
实例二:判断QQ号是否正确(还差一个前导0的判断)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>判断是否为合理的QQ号码</title> 6 7 <script> 8 window.onload = function(){ 9 var alnp = document.getElementsByTagName(‘input‘); 10 var str = ‘‘; 11 12 alnp[1].onclick = function(){ 13 str = alnp[0].value; 14 // 属性操作我们发现,从HTML拿到内容,类型都是字符串; 15 // alert(typeof str); 这里判断出来都是字符串 16 if (str === ‘‘) { 17 18 alert(‘您没有输入内容‘); 19 20 }else if(isNaN(str)){ 21 22 alert(‘您输入的不是数字‘) 23 24 }else if(parseInt(str)!== parseFloat(str)){ 25 26 alert(‘您不可以输入小数,这不合法‘); 27 28 }else if(str.length>=5 && str.length<10){ 29 30 alert(‘恭喜你,您输入的是有效的QQ号码‘) 31 32 }else{ 33 34 alert(‘您的输入的数字必须在5位以上、10位以内‘); 35 36 } 37 38 } 39 40 } 41 42 </script> 43 44 </head> 45 46 <body> 47 <input type="text"> 48 <input type="button" value="判断是不是有效QQ号码"> 49 <p> 50 1、有没有输入<br /> 51 2、输入的是不是数字<br /> 52 3、不能有0在前面<br /> 53 4、不能是小数<br /> 54 5、输入的数字必须在5位以上、10位以内 55 </p> 56 57 </body> 58 </html>
时间: 2024-10-07 13:45:50