在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种。对于数组、对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串。此时,我们可以使用Object.prototype.toString.call(var) 能判断具体的类型数组;
判断数据类型的方式
- 可以通过instanceof比较它的实例是否为某一类型
var a = new Object()
//如果是则返回true否则返回false
console.log(a instanceof Object)//true
- 通过构造函数的方式查看 查看是由哪个构造函数生成的
var b =/a/
console.log(b.constructor)//ƒ RegExp() { [native code] }
- 第三种方式
- 对于 Object.prototype.toString() 方法,会返回一个形如 “[object XXX]” 的字符串
- 通过call或者apply的方式调用
Object.prototype.toString.call(需要判断的类型)//[object RegExp]