ECMAScirpt中的数据类型:undefined、Null、Boolean、Number、String、Object
对一个值使用typeof操作符可能返回下列某个字符串:
number(数字)、function(函数)、Boolean(布尔值)、string(字符串)、object(对象或null)、undefined(未定义)
undefined类型:
在声明了变量但未对其加以初始化时,这个变量的值就是undefined
Null类型:
它的特殊值就是null,null值表示一个空对象指针
Boolean类型:
有两个字面值:true、false,注意true不一定等于1,false不一定等于0
要将一个值转换成对应的布尔值,可以调用转型函数Boolean()
Number类型:
将一个值转换成对应的数字,Number()
例如:
var a1=''; alert(Number(a1));//0 注意 var a2=true; alert(Number(a2));//1 var a3=[]; alert(Number(a3));//0
parseInt、parseFloat将值转换成整数、小数
var num=200.45; if (parseInt(num)==parseFloat(num)) { alert(num+'是整数'); } else{ alert(num+'是小数'); };
Number()、parseInt()、parseFloat()都是显示类型转换,也叫强制类型转换
隐式类型转换有:
+ 200+’3’ 变成字符串 2003
-、*、/、%
++、—— 变成数字
>、< 注意数字的比较与字符串的比较是不一样的
NaN:
即not a number ,NaN不是数字的数字类型,NaN与其本身不相等,isNaN()判断某些值是不是数字;与Number相反,isNaN()是在Number转不成数字的情况下的数字类型
JavaScript:
var oBtn=document.getElementById('btn1'); var oText=document.getElementById('text1'); var str=''; oBtn.onclick=function(){ str=oText.value; //判断输入的内容是否为数字 if (isNaN(str)) { alert(str+'不是数字'); } else{ //判断是否为空格/*Number(str)==0*/ if (str==null) { alert('输入的是空格'); } else {alert(str+'是数字');} }; }
HTML:
数据类型转换的应用,我们来看一个例子:在输入框输入内容,要求判断:1、有没有输入 2、输入的是不是数字 3、不能有0在前面 4、不能是小数 5、输入的数字必须是在5位数以上、10位数以内
var oBtn=document.getElementById('btn1'); var oText=document.getElementById('text1'); var str=''; oBtn.onclick=function(){ str=oText.value; oText.value=''; if (str=='') { alert('请输入内容');//没有输入内容 } //判断输入的内容是否为数字 else if (isNaN(str)) { //不是数字 alert('请输入数字');//输入的不是数字 } //判断输入的是否为空格 else if(Number(str)==0){ alert('空格无效'); } else{ //输入的是数字 //判断第一位数是否为0 if (str[0]=='0') { alert('第一位是不能为0'); } else{ //判断是否为小数 if (parseInt(str)==parseFloat(str)) { var num=parseInt(str); //输入的数字必须在5位以上、10位以内 if ((num>9999)&&(num<999999999)) { alert('输入成功!'); } else{ alert('输入的数字不在范围内'); }; } else{ alert('输入的数字是小数'); } } }; }
HTML:
- 有没有输入
- 输入的是不是数字
- 不能有0在前面
- 不能是小数
- 输入的数字必须在5位以上、10位以内
注意:在输入框输入空格时,Number()能将其转换为数字0,所以,空格也是非NaN,用Number(str)==0来判断是否输入的为空格,此处本想用str==null代替却未达到效果,但在别的程序里用str==null来判断是否为空格却有用,欢迎大家前来指点!