JavaScript 中 TypeError: toISOString is not a function 错误
当对不是日期对象的值调用 toISOString()
方法时,会发生“TypeError: toISOString is not a function”错误。
要解决此错误,需要在调用方法之前将值转换为日期,或确保仅对有效日期对象调用 toISOString()
方法。
下面是产生上述错误的示例代码
const d = Date.now();
console.log(d); // 👉️ 1639....
// ⛔️ TypeError: toISOString is not a function
const result = d.toISOString();
Date.now()
函数返回一个整数,因此对整数调用 Date.toISOString()
方法会导致错误。
仅对有效的 Date 对象调用 toISOString() 方法
要解决该错误,需要确保仅对有效的 Date 对象调用 toISOString()
方法。
// ✅ Works
const d1 = new Date().toISOString();
console.log(d1);
const d2 = new Date('Sept 24, 22 13:20:18').toISOString();
console.log(d2); // 👉️ 2022-09-24...
我们可以通过将有效日期传递给 Date()
构造函数来获取 Date 对象。
请注意
,如果将无效日期传递给Date()
构造函数,您将得到“Invalid time value”RangeError。
// ⛔️ RangeError: invalid time value
const d1 = new Date('invalid').toISOString();
console.log(d1);
我们可以使用 console.log
打印正在调用 toISOString
方法的值,以检查它是否是有效的 Date 对象。
检查该值是否是有效的 Date 对象
我们还可以有条件地检查该值是否为 Date 对象。
const d1 = new Date();
if (typeof d1 === 'object' && d1 !== null && 'toISOString' in d1) {
const result = d1.toISOString();
console.log(result);
}
我们的 if
语句使用逻辑与 &&
运算符,因此要运行 if 块,必须满足所有条件。
我们首先检查 d1 变量是否存储了具有对象类型的值,因为日期具有对象类型。
然后我们检查变量是否不等于 null。 不幸的是,如果我们使用 console.log(typeof null)
,我们将得到一个“object”值,因此我们必须确保该值不为空。
console.log(typeof null); // 👉️ "object"
我们检查的最后一件事是该对象包含
toISOString
属性。
然后我们知道我们可以安全地对该对象调用 toISOString
方法。
这种方法称为 duck-typing
打字。
使用 duck-typing
时,我们只需检查对象是否实现了特定的属性或方法,如果实现了,我们就假定它是正确类型的对象。
总结
当对不是日期对象的值调用 toISOString()
方法时,会发生“TypeError: toISOString is not a function”错误。
要解决此错误,请在调用方法之前将值转换为日期,或确保仅对有效日期对象调用 toISOString()
方法。
相关文章
使用 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 中获取字符串最后一个字符的方法