检测数据类型的三种方式及区别
var a="i am string"; var b=[1,2,3]; var c=new String("abc"); //String类实例对象 //typeof: null 对象 数组 都是返回Object类型 console.log(typeof a); //string console.log(typeof b); //object console.log(typeof c); //object //instanceof无法检测是字符串,因为a只是一个一string为字符类型的值,并不是String实例对象 c可以检测因为c是String类的实例对象 console.log(a instanceof String); //false console.log(c instanceof String); //true console.log(b instanceof Array); //true //返回相对应的构造函数 console.log(a.constructor==String); //true console.log(b.constructor==Array); //true
1、typeof a
返回a的数据类型。但是null 对象 数组 都是返回Object类型
2、a instanceof String
返回布尔值
3、a.constructor
返回其相对于的构造函数
a.constructor==String 返回true