1、js中的数据类型有:数字、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义。
可以使用typeof来判断:
var i = 100;
alert( typeof i ); // number
2、关于Number转换:
var a = '+100';
alert( Number(a) ); // 100
var a1 = ' ';
alert( Number(a1) ); // 0
var a2 = true;
alert( Number(a2) ); // true-1 false-0
var a3 = [ 1 ];
alert( Number(a3) ); // 1 0
var a4 = null;
alert( Number(a4) ); // 0
能够转换一些较为简单的数据。
3、parseFloat和parseInt:
parseInt可以看成Number的升级版
var b = ' 200px';
alert( parseInt(b) ); //200
parseFloat可以看成parseInt的升级版
var c = '12.34元';
alert( parseFloat(c) ); //12.34
这两个都是默认从左往右检索,Int遇到别的字符就会停止而Float可以多检索一个小数点,再遇到其他字符时停止。
4、parseFloat和parseInt的应用:
var num = '200.45';
if( parseInt(num) == parseFloat(num) ){
alert( num + '是整数' );
}else{
alert( num + '是小数' );
}
可以判断是整数还是小数。
5、上面三个是显式类型转换,下面介绍隐式类型转换
+ 200 + '3' 变成字符串 //含有连接的含义
- * / % '200' - 3 变成数字 //将字符串200转成了数字
++ -- 变成数字 //同上
> < 数字的比较 、字符串的比较 //数字与字符串比较会把字符串转换为数字,字符串与字符串则比较的是他们的编码
! 取反 把右边的数据类型转成布尔值
==
针对!,写了几个例子。
alert(!null);
alert(!0);
alert(!undefined);
alert(!'');
这些得到的是true。(可能还有其他的,目前只想到这些)
一般在后面加东西的话,得到的都是false。
针对==和===:
alert( '2' === 2 ); //false
alert( '2' == 2 ); //true
三个等号相对来说就更加严谨,并且是存在字符串转成数字的。
6、NaN:不是数字的数字类型,一旦程序中弹出,肯定进行了不正常的运算操作。
NaN默认布尔值是false。
alert(!NaN); //true
isNaN():可以用来判断某些值是不是数字,它讨厌数字,并且是一个布尔值。
alert( isNaN (250) ); //flase 给它数字它不高兴了
if( isNaN(str) ){
alert( str + '不是数字' );
}else{
alert( str + '是数字' );
}
最后有一个小实例:
点击按钮过后判断:
1、有没有输入
2、输入的是不是数字
3、不能有0在前面
4、不能是小数
5、输入的数字必须在5位以上、10位以内
if (str == '') {
alert('不能为空呀~');
}
else if ( isNaN(str) ) {
alert('输入的必须为数字呀~');
}
else if ( str.charAt(0) == '0' ) {
alert('不能以0开头哦~');
}
else if ( parseInt(str)!=str ) {
alert('输入的内容不能为小数');
}
else if ( str.length <5 || str.length >10 ) {
alert('请输入5位以上,10位以下的内容');
}
else{
alert('OK');
}