引用地址:http://changfeng-liu.blog.163.com/blog/static/210465184201271691752563/
1. 使用typeof (变量)
typeof的功能很弱,只能判断基础数据类型。对于使用内置构造函数创建的对象,均返回object,效果很让人失望。
需要注意的是:typeof(null) == ‘object’; typeof(a) == ‘undefined’。
如图所示(截图使用的是Google Developer Tools):
2. 使用Object.prototype.toString.call(变量), 即借用Object构造的toString逻辑.
主要用于判断JavaScript内置构造函数的对象类型.
jQuery即使用这种方式判断对象类型,但是它的缺点是无法判断自定义构造函数的对象类型。
3. 使用instanceof, 判断某个变量是否某个构造函数的实例.
instanceof的优点是:支持自定义构造函数的判断。这个功能在以OO的方式写JavaScript时,很有用!