在javascript中查找对象的类型

时间:2013-11-12 12:18:31

标签: javascript

我想在我的方法中检查变量的类型,如下所示

var prevDate=new Date(2000, 2, 2)
console.log(typeof prevDate);

现在它返回“object”作为类型,但它是日期的类型。如何使用“typeOf”获取prevDate的类型,并且不想使用jQuery.type(prevDate),因为它需要更多的时间来执行。

提前致谢

4 个答案:

答案 0 :(得分:1)

您可以通过以下方式获得:

var prevDate=new Date(2000, 2, 2)
console.log(Object.prototype.toString.call(prevDate));

答案 1 :(得分:1)

typeof在原始值(null除外)下运行得非常好。但它没有说明对象类型。 幸运的是,所有JavaScript本机对象都有一个隐藏的[[Class]]属性。它等于数组的“数组”,日期等的“日期”等。 此属性不能直接访问,但toString,从本机Object借用它返回一个小包装,例如:

var toClass = {}.toString

alert( toClass.call( [1,2] ) ) // [object Array]
alert( toClass.call( new Date ) ) // [object Date]

您可以阅读更多here

答案 2 :(得分:0)

一行函数:

console.log( function(prevDate) {
  return ({}).toString.call(prevDate).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
});

答案 3 :(得分:0)

Object.toString返回表示对象的字符串。

var prevDate=new Date(2000, 2, 2);
console.log(Object.prototype.toString.call(prevDate));

Output: "[object Date]"