类型错误:date.getHours 不是 JavaScript 中的函数

TypeError: date.getHours 不是 JavaScript 中的函数

TypeError: date.getHours is not a function in JavaScript

getHours()当对不是日期对象的值调用该方法时,会发生“TypeError: date.getHours is not a function”错误

要解决该错误,请在调用该方法之前将该值转换为日期,或者确保仅对getHours()有效的日期对象调用该方法。

typeerror date getHours 不是函数

下面是错误如何发生的示例。

索引.js
const date = Date.now(); console.log(date); // 👉️ 1639... // ⛔️ TypeError: date.getHours is not a function const result = date.getHours();

我们调用了Date.now()返回一个整数的函数,并尝试

对其调用
Date.getHours()方法,这导致了错误。

getHours()仅在有效Date对象上调用该方法

要解决该错误,请确保仅对getHours()有效日期对象调用该方法。

索引.js
const t1 = new Date().getHours(); console.log(t1); // 👉️ 18 const t2 = new Date('Sept 24, 22 13:20:18').getHours(); console.log(t2); // 👉️ 13

您可以通过将有效日期传递给Date()构造函数来获取日期对象

调用getHours()无效Date返回NaN

请注意,如果将无效日期传递给Date()构造函数,您将返回NaN(不是数字)值。

索引.js
const d1 = new Date('invalid').getHours(); console.log(d1); // 👉️ NaN

您可以查看console.log调用该方法的值getHours,看看它是否是有效Date对象。

Date调用前检查值是否为agetHours

Date您可以通过以下方式有条件地检查该值是否为对象。

索引.js
const d1 = new Date(); if (typeof d1 === 'object' && d1 !== null && 'getHours' in d1) { const result = d1.getHours(); console.log(result); // 👉️ 18 }

Our if condition uses the logical AND (&&) operator, so for the if block to
run, all of the conditions have to be met.

We first check if the d1 variable stores a value with a type of object because dates have a type of object.

Then we
check if the variable is not equal to null.

Unfortunately, if you check the type of null – console.log(typeof null), you
will get an "object" value back, so we have to make sure the value is not
null.

index.js
console.log(typeof null); // 👉️ object
The last thing we check for is that the object contains the getHours property.

Then we know we can safely call the getHours method on the object.