JavaScript 数据类型和转换
一、数据类型
①数字:Number
②字符串:string
③布尔值:boolean
④对象:object:三种对象类型:object(对象)、Date(日期)、Array(数组)
⑤函数:function
⑥不能包含值的数据类型:null、undefined
二、typeof
可以使用typeof来检查javascript中的数据类型
三、数据类型转换
1、显性转换:强制转换数据类型(包括Number()、parseInt()、parseFloat()、string()、Boolean();)
2、隐性转换:①- * / % 减、乘、除、取模可以将字符串转成数字;
②+ 加号可以将数字转成字符串;
③++ – 加加、减减运算符可以把字符串转成数字;
④< > 大于号、小于号可以把字符串转成数字,一定要注意是进行数字的比较还是字符串的比较;
⑤!取反 把右边的数据类型转成布尔值。
Number();
var a = ‘100’;
alert(a + 100); //'100100
var b = ‘00100’;
alert(Number(b)); //100
var e = ’ ';
alert(Number(e)); //0(空字符串为0)
var o = null;
alert(Number(o)); //0(null为0)
var f = true;
alert(Number(f)); //1(true值为1)
var g = false;
alert(Number(g)); //0(flase值为0)
var p;
alert(Number§); //undefined
var h = function(){};
alert(Number(h)); //NaN
parseInt();
var d = ‘-100px’;
alert(parseInt(d)); //-100 (parseInt是认加减号和空格的)
var f = ‘000000100px’;
alert(parseInt(f)); //100(从整数值开始转换)
var g = ‘12.34元’;
alert(parseInt(g)); //12 (只能转出整数)
var c = true;
alert(parseInt©); //NaN(不能用于转函数和Boolean)
parseInt()方法还有一个参数,就是按照几进制来转,比如parseInt(a, 10);表示按照十进制来转;parseInt(b, 2);表示按照二进制来转。
parseFloat();
var b = ‘12.3.4元’;
alert(parseFloat(b)); //12.3(parseFloat只认第一个小数点)
parseInt()和parseFloat()配合使用,可以来判断某个值是整数还是小数
var num = ‘200.345’;
if(parseInt(num) == parseFloat(num)) {
alert(num + ‘是整数’);
} else {
alert(num + ‘是小数’);
}
to string;
var i= 100;
alert(to string(i)); //“100”
隐性转换;
alert(‘200’ - 3); //197
alert(200 + ‘3’); //2003
alert(‘10’>9); //true
alert(‘1000000’>‘9’); //false
注意:数字的比较和字符串的比较不同;字符串的比较是一位一位的比较。
alert(‘2’ == 2); //true
alert(‘2’ === 2); //false 三个等号不仅判断值,还会先判断两者的类型
NaN、isNaN
Nan是个不是数字的数字类型。一旦程序中出现了NaN,肯定说明进行了非法的运算操作;NaN是个false;NaN与自己都不相等。
isNaN帮助判断某些值是不是数字。
alert(isNaN(‘250’));
//Number() ‘250’ => 250 => false
isNaN的判断过程,Number转出来数字,就返回false;转不出来就返回true。