JavaScript 中 TypeError: date.getDay is not a function 错误
当对不是日期对象的值调用 getDay()
方法时,会发生“TypeError: date.getDay is not a function”错误。
要解决此错误,需要在调用方法之前将值转换为日期,或确保仅对有效日期对象调用 getDay()
方法。
下面是产生上述错误的一个示例
const date = Date.now();
console.log(date); // 👉️ 1639...
// ⛔️ TypeError: date.getDay is not a function
const result = date.getDay();
我们调用了 Date.now()
函数,它返回一个整数,并试图在其上调用 Date.getDay()
方法,所以错误发生了。
只在有效的日期对象上调用 getDay() 方法
要解决该错误,请确保仅对有效日期对象调用 getDay()
方法。
const d1 = new Date().getDay();
console.log(d1); // 👉️ 4
const d2 = new Date('Sept 24, 22 13:20:18').getDay();
console.log(d2); // 👉️ 6
我们可以通过将有效日期传递给 Date()
构造函数来获取日期对象。
在无效日期调用方法返回 NaN
请注意
,如果将无效日期传递给Date()
构造函数,将返回 NaN(不是数字)值。
const d1 = new Date('invalid').getDay();
console.log(d1); // 👉️ NaN
我们可以使用 console.log
打印正在调用 getDay
方法的值并查看它是否是有效的 Date 对象。
在调用 getDay 之前检查该值是否为 Date 对象
我们可以通过以下方式有条件地检查该值是否为 Date 对象。
const d1 = new Date();
if (typeof d1 === 'object' && d1 !== null && 'getDay' in d1) {
const result = d1.getDay();
console.log(result); // 👉️ 4
}
我们的 if
条件使用逻辑与 &&
运算符,因此要运行 if 块,必须满足所有条件。
我们首先检查 d1 变量是否存储了具有对象类型的值,因为日期具有对象类型。
然后我们检查变量是否不等于 null。 不幸的是,如果我们检查 null 的类型 - console.log(typeof null)
,我们将得到一个“object”值,因此我们必须确保该值不为 null。
console.log(typeof null); // 👉️ object
我们检查的最后一件事是该对象包含
getDay
属性。
然后我们知道我们可以安全地对该对象调用 getDay()
方法。
总结
当对不是日期对象的值调用 getDay()
方法时,会发生“TypeError: date.getDay is not a function”错误。
要解决此错误,请在调用方法之前将值转换为日期,或确保仅对有效日期对象调用 getDay()
方法。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法