JS的数据类型
原始数据类型:
Number,String,Boolean,Null,underfined,Symbol
引用数据类型:
Object 对象和数组都属于object
Null
Null 特殊的数据类型,本身是基本数据类型,但它指向空的内存地址
表示被赋值过的对象,刻意把一个对象赋值为null,故意表示其为空,不应有值。
所以对象的某个属性值为null是正常的,null转换为数值时值为0。
undefined
表示“缺少值”,即此处应有一个值,但还没有定义,
如果一个对象的某个属性值为undefined,这是不正常的,如obj.name=undefined,我们不应该这样写,应该直接delete obj.name。
undefined转为数值时为NaN(非数字值的特殊值)
JavaScript是一门动态类型语言,成员除了表示存在的空值外,还有可能根本就不存在(因为存不存在只在运行期才知道),这就是undefined的意义所在。
函数
特殊引用类型,但不用于存储数据,所以没有“拷贝,复制函数”这一说
判断数据类型
typeof 运算符
可以判断区分基本数据类型,对于引用数据类型无法区分
可以识别函数
instanceof
可以判断引用数据类型,无法判断字面量值(123,'123’等等)
instanceof运算符需要指定一个构造函数,或者说指定一个特定的类型,它用来判断这个构造函数的原型是否在给定对象的原型链上。
constructor
constructor是prototype对象上的属性,指向构造函数。根据实例对象寻找属性的顺序,若实例对象上没有实例属性或方法时,就去原型链上寻找,因此,实例对象也是能使用constructor属性的。
falsely 变量
0,NaN,’’,null,undefined,false