Javascript如何确定Object类型

已收录   阅读次数: 1,252
2021-03-0708:44:00 发表评论
摘要

众所周知,Javascript中确定数据类型的方法是使用typeof()函数,但是有一种类型使用这种方法得到的都是统一的样子,通通为Object,那么如何区分具体的Object类型呢?只需要使用这样的方法,请看此篇……

分享至:
Javascript如何确定Object类型

开篇寄语

众所周知,Javascript中确定数据类型的方法是使用typeof()函数,但是有一种类型使用这种方法得到的都是统一的样子,通通为Object,那么如何区分具体的Object类型呢?只需要使用这样的方法,请看此篇。

内容详情

如果您使用typeof来获取JavaScript中的对象类型,那么您可能已经经历过:

console.log(typeof a); // undefined
console.log(typeof 1); // number
console.log(typeof 'a'); // string
console.log(typeof {}); // object
console.log(typeof []); // object
console.log(typeof new Number(2)); // object

为何不论是{}、[]等等都是“object”数据类型,wtf!这是什么问题呢?

实际上,typeof并不是按对象类型进行测试的更好方法。如果我告诉您更好的测试方法是使用toString()方法,您会相信吗?

没错,你要相信哦,因为它真的可以,请看:

console.log(Object.prototype.toString.call({})); // [object Object]

并没有改变呢?改变“{}”为“[]”就会出现特别大的变化,请看:

console.log(Object.prototype.toString.call([])); // [object Array]
console.log(Object.prototype.toString.call('a')); // [object String]
console.log(Object.prototype.toString.call(1)); // [object Number]
console.log(Object.prototype.toString.call(new Number(2))); // [object Number]

怎么样?这样操作下来是不是就可以区分Object数据类型了吗?

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: