我想在我的方法中检查变量的类型,如下所示
var prevDate=new Date(2000, 2, 2)
console.log(typeof prevDate);
现在它返回“对象”作为类型,但它是日期的类型。我如何使用“typeOf”获取 prevDate 的类型并且不想使用 jQuery.type(prevDate),因为它需要更多时间来执行。
提前致谢
我想在我的方法中检查变量的类型,如下所示
var prevDate=new Date(2000, 2, 2)
console.log(typeof prevDate);
现在它返回“对象”作为类型,但它是日期的类型。我如何使用“typeOf”获取 prevDate 的类型并且不想使用 jQuery.type(prevDate),因为它需要更多时间来执行。
提前致谢
您可以通过以下方式获得它:
var prevDate=new Date(2000, 2, 2)
console.log(Object.prototype.toString.call(prevDate));
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]
你可以在这里阅读更多
单行功能:
console.log( function(prevDate) {
return ({}).toString.call(prevDate).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
});
Object.toString返回一个表示对象的字符串。
var prevDate=new Date(2000, 2, 2);
console.log(Object.prototype.toString.call(prevDate));
Output: "[object Date]"