将日期对象打印到控制台

时间:2019-05-24 10:26:06

标签: javascript node.js datetime console

我今天一直在处理日期对象,并注意到我无法解释的异常行为。

想象一下这段代码:

var Today = new Date();
var FutureDate = Today.addDays(60);

console.log("Today: " + Today);
console.log("Future: " + FutureDate);

console.log(Today);
console.log(FutureDate);

if(Today == null || Today === null)
{
    console.log("Null!");
}
else if(Today === undefined || Today == undefined)
{
    console.log("Undefined!");
}
else
{
    console.log("Assigned and defined!");
}

使用补充方法:

Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}

这将导致以下输出:

Today: Fri May 24 2019...
Future: Tue Jul 23 2019...
//blank
//blank
Assigned and defined!

为什么在控制台中附加日期后才打印日期?我可以看到它不是null,也没有定义。但是我只是对Date.ToString在某些情况下似乎决定不起作用的事情感到困惑。

编辑。

通过将toString()添加到第二个控制台调用中,我设法使它们得以打印。我只能推断在串联字符串"Today: " + Today时调用toString()方法,而在作为日期对象调用时则不能。

为什么会这样?我给人的印象是,任何作为参数传递给console.log方法的对象本质上都是“字符串化”的。

0 个答案:

没有答案
相关问题