JavaScript 如何检查一个对象是否为日期
本文将向您展示如何检查给定对象是否为日期。有两种方法来检查日期对象,如下所述:
方法1:使用 instanceof 运算符
instanceof 运算符用于检查构造函数的原型属性是否出现在对象的原型链中的任何地方。在本例中,它用于检查对象是否为 Date 对象的实例。返回 true 表示匹配指定的对象。可以使用 !isNaN() 函数来检查 Date 对象中的日期的有效性。如果日期无效,则返回 true。
语法:
object instanceof Date
示例:
let str = new String('This is a string');
let num = new Number(25);
let date = new Date('13-January-19');
let ans = (str instanceof Date) && !isNaN(str);
console.log(ans);
ans = (num instanceof Date) && !isNaN(num);
console.log(ans);
ans = (date instanceof Date) && !isNaN(date);
console.log(ans);
输出
false
false
true
方法2:使用Object.prototype.toString.call()方法
Object.prototype.toString.call()方法用于返回对象的内部类属性,格式为“[object Type]”的字符串。此属性在创建任何对象时内部分配。可以通过将其与字符串“[object Date]”进行比较来检查是否为Date对象。如果返回true,则表示匹配指定对象。可以使用!isNaN()函数检查Date对象中的日期的有效性。如果日期无效,则返回true。
语法:
Object.prototype.toString.call(object)
示例:
let str = new String('This is a string');
let num = new Number(25);
let date = new Date('13-January-19');
let ans = Object.prototype.toString.call(str)
=== '[object Date]' && !isNaN(str);
console.log(ans);
ans = Object.prototype.toString.call(num)
=== '[object Date]' && !isNaN(num);
console.log(ans);
ans = Object.prototype.toString.call(date)
=== '[object Date]' && !isNaN(date);
console.log(ans);
输出
false
false
true
我们有一个完整的 JavaScript 日期对象列表,请查看下面的链接: JavaScript 日期对象完整参考文档 文章。