gpt4 book ai didi

javascript - 当我实例化一个新的日期对象时,我的 JavaScript 似乎崩溃了

转载 作者:行者123 更新时间:2023-11-28 10:33:25 25 4
gpt4 key购买 nike

我是 JavaScript 新手,这是我的第一个小应用程序。我正在开发这个日历/日期时间选择器程序。我似乎进入了一个噩梦般的场景,应用程序崩溃了,我无法弄清楚是什么造成了崩溃。经过一些原始的侦查(即连续的 document.writes 来查明杀死它的行,我似乎已经缩小了一个非常无辜的代码行:

month_start = new Date(this.Year, this.Month, 1);

this.Year 和 this.Month 是类/父函数的属性。我检查了它们,此时它们都包含有效值。我在该行之前放置了一个 document.write 并显示了它,但是紧随该行之后,程序没有响应并且不显示 document.write。

我在这里犯了某种 JavaScript 101 错误吗?

这一行位于一个非常小的函数内。整个函数如下所示:

function Display_Calendar_Week(x, month_days){
ds = '';
d=0;
//for the first day of the month, start at the appropriate day of the week
if(x==1)
{
//first date of current month and year

month_start = new Date(this.Year, this.Month, 1);

d = month_start.getDay();
}
for(j=0;j<7;j++)
{
if( (j<d) || (x > month_days))
{
ds +=('<div class="Calendar_Day_Square_Empty"></div>');
}
else
{
if((x==RightNow_Date) && (RightNow_Month==this.Month) && (RightNow_Year==this.Year))
{

ds +=('<div class="Calendar_Day_Square_Today" onClick="'+this.InstanceName+'.Select_Date(\''+ this.PageElement +'\', '+ this.Year +', '+ this.Month +', '+ x +');">' + x + '</div>');
}
else if((x==this.Selected_Date) && (this.Selected_Month==this.Month) && (this.Selected_Year==this.Year))
{
ds +=('<div class="Calendar_Day_Square_Selected" onClick="'+this.InstanceName+'.Select_Date(\''+ this.PageElement +'\', '+ this.Year +', '+ this.Month +', '+ x +');">' + x + '</div>');
}
else
ds +=('<div class="Calendar_Day_Square" onClick="'+this.InstanceName+'.Select_Date(\''+ this.PageElement +'\', '+ this.Year +', '+ this.Month +', '+ x +');">' + x + '</div>');
x++;
}
}
return [x, ds];

}

最佳答案

在您的函数中,this.Yearthis.Month未定义。您永远不会为它们分配任何值,这就是 new Date(undefined, undefined, 1) 停止执行的原因。 this.PageElementthis.Selected_Month 等也是如此 - 但脚本永远不会到达那里。

还有一些提示:声明变量时考虑使用 var - 这样,它们就不会处于全局(window)范围内;此外,字符串连接比构建字符串数组并连接它要慢得多:['a', 'b', 'c'].join('');

关于javascript - 当我实例化一个新的日期对象时,我的 JavaScript 似乎崩溃了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com