基础数据类型判断typeof
基础数据类型:String, boolean, Number, null, undefined,一般用typeof判断,注意,null的typeof判断是object;
null与undefined区别
引用数据类型判断instanceof
引用数据类型:Object, Array, Function, RegExp, Date
A instanceof B:当需要判断的是数组和对象时,数组 instanceof 对象,返回的是true; 对象 instanceof 数组,返回false;有一定的缺陷;
instanceof 不能用于判断基本数据类型,因为判断原理是判断实例是否属于某个数据类型的实例;
引用数据类型判断constructor
可以解决Array与Object判断的问题
类型转换
- null与undefined比较时,会先转化为Boolean类型(都为false),所以比较两者相等返回true;
- 2 == true返回false原因是,true先转换为Number类型(1),2 == 1 当然不相等,返回false
- [] 与[] 比较时,都为数组类型,占用的内存地址不同,是不同的空数组,所以返回false;
- [] 与 ![]比较,两者都转为Number类型比较,都为0,所以返回true;