我在网页上有一个烦人的错误:
date.GetMonth() 不是函数
所以,我想我做错了什么。该变量date不是类型的对象Date。 如何检查 Javascript 中的数据类型? 我试图添加一个if (date),但它不起作用。
date
Date
if (date)
function getFormatedDate(date) { if (date) { var month = date.GetMonth(); } }
那么,如果我想编写防御性代码并防止日期(不是一个)被格式化,我该怎么做?
谢谢!
更新: 我不想检查日期的格式,但我想确保传递给方法的参数getFormatedDate()是 type Date。
getFormatedDate()
作为鸭子打字的替代方法
typeof date.getMonth === 'function'
您可以使用instanceof运算符,即但它也会为无效日期返回 true,例如new Date('random_string')也是 Date 的实例
instanceof
new Date('random_string')
date instanceof Date
如果对象跨越帧边界,这将失败。
解决方法是通过检查对象的类
Object.prototype.toString.call(date) === '[object Date]'