判断js数据类型有很多方法,我这里介绍以下三种常见的方法
1.typeof运算符
typeod是最常见的,使用它会返回一个字符串,设置函数对象和基本类型(js中的基本类型:number,string,boolean,null,undefined,object 还有ES6新增 symbol)的判断
2.instanceof操作符(基于原型链)
obj instanceof Object
实质就是:instanceof操作符判断做操作数对象的圆形链上是否有右边这个构造函数的prototype属性,也就是说 指定对象是否是某个构造函数的实例,最后返回布尔值,这个对整个原型链上的对象都是有效的,由于instanceod对整个原型链上的对象都有效,同一个实例对象可能会对多个构造函数都返回true
3.Object.prototype.toString方法
- 对于数组,null,对象来说,其关系错综复杂,使用typeof都会统一返回object字符串
- 要想区别对象、数组、函数单纯使用 typeof 是不行的,JavaScript 中,通过Object.prototype.toString 方法,判断某个对象值属于哪种内置类型。
用法Object.prototype.toString.apply([]) ==="[Object Array]"