JavaScript中有6种数据类型:number、string、boolean、undefined、null、Object。其中对象类型包括:Array、Function、RegExp、Date
判断数据类型
- typeof:用来判断是基础类型还是对象类型
- instanseof:操作符判断左操作数对象的原型链上是否有右边这个构造函数的prototype属性,也就是说指定对象是否是某个构造函数的实例。例如:[] instanceof Array; //true [] instanceof Object; //true
- constructor:作用是,可以得知某个实例对象,到底是哪一个构造函数产生的。var f = new F(); f.constructor === F;// true。为了规范,在重写对象原型时一般都需要重新给constructor赋值,以保证实例对象的类型不被改写。
- Object.prototype.toString:调用Object原型上的toString方法,可返回具体的对象类型。例如:Object.prototype.toString.call('') ; // [object String]。
Object.prototype.toString.call('') ; // [object String]
Object.prototype.toString.call(1) ; // [object Number]
Object.prototype.toString.call(true) ; // [object Boolean] Object.prototype.toString.call(undefined) ; // [object Undefined] Object.prototype.toString.call(null) ; // [object Null]
Object.prototype.toString.call(new Function()) ; // [object Function] Object.prototype.toString.call(new Date()) ; // [object Date] Object.prototype.toString.call([]) ; // [object Array]
Object.prototype.toString.call(new RegExp()) ; // [object RegExp] Object.prototype.toString.call(new Error()) ; // [object Error] Object.prototype.toString.call(document) ; // [object HTMLDocument] Object.prototype.toString.call(window) ; //[object Window]