开篇寄语
众所周知,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数据类型了吗?
- 我的微信
- 微信扫一扫加好友
- 我的微信公众号
- 扫描关注公众号