Javascript 在Google脚本中,当由时间驱动触发器执行时,为什么函数参数的值没有定义?

Javascript 在Google脚本中,当由时间驱动触发器执行时,为什么函数参数的值没有定义?,javascript,function,google-apps-script,Javascript,Function,Google Apps Script,我在Google Apps脚本中的时间驱动功能是: 函数addTopRow(d){ 如果(d==“未定义”){//从时间触发器运行时 var dT=(新日期().setHours(0,0,0,0)); d=新日期(dT); } 否则{ d=新日期(d+“T00:00:00-08:00”); } var行=[]; var sheet_db=//在此处定义工作簿工作表 世界其他地区:推动(d); 活页_db.getRange(“A3”).设置值([行]); } //在需要时,在没有任何触发器的情况下

我在Google Apps脚本中的时间驱动功能是:

函数addTopRow(d){
如果(d==“未定义”){//从时间触发器运行时
var dT=(新日期().setHours(0,0,0,0));
d=新日期(dT);
}
否则{
d=新日期(d+“T00:00:00-08:00”);
}
var行=[];
var sheet_db=//在此处定义工作簿工作表
世界其他地区:推动(d);
活页_db.getRange(“A3”).设置值([行]);
}
//在需要时,在没有任何触发器的情况下运行上述相同功能(&W)
功能测试开始日期(“2019-11-10”);
使用案例
1.每天凌晨1点左右准时触发<代码>d将是未定义的;因此,手动将
d
设置为今天的日期。 2.如果工作表中的任何其他函数以
d
作为日期字符串调用。这次将定义D

预期行为
在案例1中,d未定义,因此函数使用今天的日期。
在案例2中,定义/传递了d,所以函数应该使用该日期

发生了什么事
案例2正在按预期工作。 在案例1中,日期始终被视为UNIX历元(0)&在添加时区时-8:00将其始终设置为1969年12月31日。预期输出是今天的日期

问题
为什么“d”在时间驱动触发器中没有定义?
是否有任何文档/参考列出了时间驱动时传递给函数的所有参数

更新

我在API上找到了该对象的链接:

用我的发现部分回答了我自己的问题,但也将等待其他答案

在使用了许多Logger.log()和执行摘要后,我发现当此函数由时间驱动触发器触发时,
d
将作为具有以下值的对象出现:

    {
        "authMode": {},
        "week-of-year": 47,
        "day-of-week": 7,
        "month": 11,
        "hour": 1,
        "year": 2019,
        "timezone": "UTC",
        "day-of-month": 24,
        "triggerUid": "2594419",
     ...)
显然,
部分意味着Logger.log()决定截断更多的键和值

因此,我更新了以下
if
条件,以检查typeof
string
,而不是undefined:

//上一行:
如果(d==“未定义”){//从时间触发器运行时
//改为:
if(typeof d!=“string”){//从时间触发器运行时
&现在开始工作了