js中的数据类型
js中的数据类型分为两大类,简单数据类型和复合(复杂)数据类型,共六种。分别是:
简单数据类型:
字符串 String 数字 Number 布尔值 Boolean 未定义 Undefined 空 Object复合(复杂)数据类型:
对象 Object字符串类型(String)
由一对引号包含起来了有0个或多个字符组成的串,引号一定是成对的 。
1 var s1='a';//单引号2 console.log(s1);//a3 var s2="b";//双引号4 console.log(s2);//b
可以用'+'号把多个字符串拼接到一起。
1 var a='世界';2 var b='你好';3 console.log(a+b);//世界你好
当加号左边或者右边有一个是字符串的时候,加号代表字符串连接。
1 var a='10';2 var b=1;3 console.log(a+b);//101
当一个数字和空字符串相加,返回的是转换成字符串的数字。
1 var a='';2 var b=20;3 console.log(a+b);//字符串20
数字类型(Number)
由0-9之间的任意一个数字组合而成,分为整数和小数,取值范围从负无穷(-Infinity)到正无穷(+Infinity),有最小值也有最大值。
最小值:Number.MIN_VALUE;
1 console.log(Number.MIN_VALUE);//5e-324
最大值:Number.MAX_VALUE;
1 console.log(Number.MAX_VALUE);//1.7976931348623157e+308
数字类型还有一个特殊的类型NaN,它用来表示非数字。它有一个特性,自己跟自己都不相等。
1 console.log(Number('a'));//NaN2 console.log(NaN==NaN);//false
布尔值类型(Boolean)
布尔值分为两种,true和false,true代表真,false代表假。
1 var a=1;2 var b=2;3 console.log(a b);//false
未定义类型(Undefined)
该类型只有一个值:undefined。当声明的变量没有赋值时,变量的默认值为undefined。
1 var a;2 console.log(a);//undefined
undefined只有再跟null做对比的时候会返回true,其他都返回false。这是因为ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。
1 console.log(undefined==null);//true
空类型(Object)
该类型只有一个值:null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
1 function fn(){2 return document.getElementById("aaa");//null,这个对象不存在3 }4 console.log(fn());
为什么null的类型是Object呢?其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符。
对象类型(Object)
对象类型是由简单的数据类型和复合数据类型组合而成的。它的数据是放在一个大括号中{}。数据有0个或者多个键值对组成,每一个数据之间用逗号隔开,最后一个数据不能用逗号,不然会报错。
1 {a:10,b:'hello',c:[]};
键值对:key:value;
key:数据名字,可以加引号也可以不加引号。当这个名字不符合变量命名规范的时候要加上引号。
value:数据对应的值,js中的任意一种数据类型都可以。
取对象中的某一个数据:用属性操作的方式。
1 var a={a:10,b:'hello'};2 console.log(a.a);//103 console.log(a.b);//hello
typeof
返回数据对应的类型(字符串),跟系统自带的数据类型会有区别,首字母是小写的。
1 var s='a';2 console.log(typeof s);//string
判断一个数据类型的时候,用typeof==小写的对应类型。
1 var s='a';2 if(typeof s=='string'){ //结果为真3 alert(1);//14 }
判断一个数据是不是为null,不能用typeof,因为typeof null返回的是object,应该直接让它跟null做对比。
1 var s=null;2 if(s==null){ //结果为真3 alert(1);//14 }else{5 alert(2);6 }
函数用typeof后返回的是function。
1 var a=function(){};2 console.log(typeof a);//function