0

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

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

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

提前致谢

4

4 回答 4

1

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

var prevDate=new Date(2000, 2, 2)
console.log(Object.prototype.toString.call(prevDate));
于 2013-11-12T12:24:26.567 回答
1

typeof 可以很好地处理原始值(null 除外)。但它没有说明对象类型。幸运的是,在所有 JavaScript 原生对象中都有一个隐藏的 [[Class]] 属性。它等于数组的“Array”,日期等的“Date”。这个属性不能直接访问,但是从原生 Object 借来的 toString 用一个小的包装返回它,例如:

var toClass = {}.toString

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

你可以在这里阅读更多

于 2013-11-12T12:28:17.497 回答
0

单行功能:

console.log( function(prevDate) {
  return ({}).toString.call(prevDate).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
});
于 2013-11-12T12:23:52.860 回答
0

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

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

Output: "[object Date]"
于 2013-11-12T12:33:47.177 回答