数据类型

js中的数据类型

js中的数据类型分为两大类,简单数据类型和复合(复杂)数据类型,共六种。分别是:

简单数据类型:
字符串 String
数字 Number
布尔值 Boolean
未定义 Undefined
空 Object

复合(复杂)数据类型:
对象 Object

字符串类型(String)

由一对引号包含起来了有0个或多个字符组成的串,引号一定是成对的 。

1 var s1='a';//单引号
2 console.log(s1);//a
3 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'));//NaN
2 console.log(NaN==NaN);//false

布尔值类型(Boolean)

布尔值分为两种,true和false,true代表真,false代表假。

1 var a=1;
2 var b=2;
3 console.log(a<b);//true
4 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);//10
3 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);//1
4 }

判断一个数据是不是为null,不能用typeof,因为typeof null返回的是object,应该直接让它跟null做对比。

1 var s=null;
2 if(s==null){ //结果为真
3     alert(1);//1
4 }else{
5     alert(2);
6 }

函数用typeof后返回的是function。

1 var a=function(){};
2 console.log(typeof a);//function

 

posted @ 2016-08-11 23:00  imguo  阅读(251)  评论(0编辑  收藏  举报