JS中常用的数据类型判断的方法有4中,分别是:
typeof:主要用来判断 基本数据类型 ,引用数据类型不可以用 typeof 检测
- 若遇到 null 或 引用数据 类型,则返回object(function除外)
typeof null, //"object"
typeof [1,2,3], //"object"
typeof {a:1,b:2,c:3}, //"object"
typeof function(){console.log('aaa');}, //"function"
- 用 typeof 检测 用 new 关键字创建的引用数据类型,如 Number,String,Boolean 都返回 object
typeof new Number(100), //"object"
typeof new String('abc'), //"object"
typeof new Boolean(true), //"object"
instanceof:判断 用 new 关键字创建的引用数据类型,字面量定义的值不可以用 instanceof 检测
- 基本数据类型中 Number,String,Boolean 如果是以构造函数的形式创建的则可以用 instanceof 来检测
console.log(
new Number(123) instanceof Number, //true
new String('abc') instanceof String, //true
new Boolean(true) instanceof Boolean, //true
)
constructor:是 prototype 对象上的属性,指向构造函数
- 除了 undefined 和 null 之外,其他类型都可以通过constructor属性来判断类型。