Javascript有六种数据类型:
数字、布尔、对象、字符串、Null、Undefined
通过 var x;给变量赋值,js可以通过赋值的内容自动判断数据类型
其中分为原始值和对象
原始值为:数字、布尔、Null、Undefined、字符串
对象:简单对象、数组、正则表达式
原始值与对象的区别:
1、原始值只需要编码值相同及被认为是相等的;每个对象有唯一标识,需要严格相等。
example:
>var A=1; | >var A={}; | >var A={}; |
>var B=1; | >var B={}; | >A===B; |
>A===B | >A===B; | >var B=A; |
true | false | true |
2、原始值不能改变他的属性而对象可以更改他的属性
example:
>var str="123"; | >var A={}; |
>str.length = 8; | >A.length=8; |
>A.length | |
undefined | 8 |
如果需要给原始值增加属性,需要包装
>var A = new Boolean(true);
A即为一个Object类型,A.valueOf()=true为原始值(去包装)
3、typeof方法和instance方法
typeof方法作用于原始值能找到该值的数据类型
example:
>typeof(true); | >typeof(1) | >typeof("123") | >typeof(function(){}) | >typeof(undefined) | >typeof(null) |
boolean | number | string | function | "undefined" | object |
其他都输出为Object
注意:所有原始和函数值除(null)都能返回数据类型,null和对象都返回object。
instanceof作用于对象
>value instanceof Constr
如果value是Constr创建的就返回true
>undefined instanceof Object | >null instanceof Object |
false | false |
null是一个很特殊的数据类型
Null和Undefined的区别:
Null:空值
Undefined:没有值(没定义),丢失方法等,一般为错误