JavaScript难题:初始化两个具有相同值的日期变量,但结果它们表示不同的日历日期
请看一看我的截图,我显然遗漏了一些东西 变量tmpStart和itemDate由相同的数值初始化,但这表明它们具有不同的日历日期JavaScript难题:初始化两个具有相同值的日期变量,但结果它们表示不同的日历日期,javascript,angular,typescript,Javascript,Angular,Typescript,请看一看我的截图,我显然遗漏了一些东西 变量tmpStart和itemDate由相同的数值初始化,但这表明它们具有不同的日历日期 start=1490683782833->tmpStart=“2017年3月26日星期日16:51:55 GMT+0200(CEST)” item=1490683782833->itemDate=“2017年3月28日星期二08:49:42 GMT+0200(CEST)” 谢谢你的建议 每次使用new date()时,您都在创建不同的date实例,因此它们会有所
- start=1490683782833->tmpStart=“2017年3月26日星期日16:51:55 GMT+0200(CEST)”
- item=1490683782833->itemDate=“2017年3月28日星期二08:49:42 GMT+0200(CEST)”
谢谢你的建议 每次使用new date()时,您都在创建不同的date实例,因此它们会有所不同
let tmpStart = new Date(start);
start += itemSize; // start changed
// item === start (changed value)
let itemDate = new Date(item);
// therefore
tmpStart != itemDate
这就是为什么
接受函数式编程。不要做作业。:)(
start+=itemSize
)不要对代码使用屏幕截图。没有人可以尝试,因为没有人想重新键入。您正在设置start+=itemSize,并询问为什么itemDate与tmpStart不同?不,我是问为什么tmpStart和itemDate在由start和item初始化时表示不同的日历日期,它们具有相同的数值。请将代码缩减为a,并将代码作为文本而不是图像放置在问题本身中。为了澄清上述问题:您在使用start初始化tmpStart后添加itemSize以启动。如果您首先进行加法,那么tmpStart将==第一次循环迭代时的itemDate是,但我正在使用相同的数值初始化它,因此它们应该表示相同的日历日期。