首页 > javascript 添加每天的日期,打印出来后都是一样的,什么鬼,Date只能实例化一次吗

javascript 添加每天的日期,打印出来后都是一样的,什么鬼,Date只能实例化一次吗

找到答案了:JavaScript解释器反向遍历作用域链来查找整个变量的var声明,如果没有找到var,解释器则假定该变量是全局变量,如果该变量用于了赋值操作的话,之前如果不存在的话,解释器则会自动创建它


首先,因为push的是同一个对象的引用,所以数组里所有元素都是同步变化的。
至于为什么是17年。。。题主你有好好看下退出循环的条件么。。。


说白了,你push进数组的是同一个对象,每次改变,当然每项都变成新值。


整个代码中实例化newData只执行了一次,while循环中永远都是同一个实例


都不看图的吗,确实是每次都push了同一个对象, 你倒是说一下 为什么 data里的数据会变成17年的呢, 按照你们的思路,不是因该是当前时间吗


data是一个数组,在data中,存放的是同一个对象:nowDate。
简单理解,就是你先在北京故宫买了一栋房子((~ o ~)~zZ 不要在意买不买得到。。。),
进入北京故宫的有10条街道,每条街道都有一个牌子,写着你买的房子的门牌号,这样,
别人找你就通过街道前的门牌号去找。
突然有一天,你把房子卖了,去国外买别墅了,可惜没通知别人,别人通过门牌号,找到的是
新的房主了,不是你了。
同样,data就是一个容器,下标就是街道口的指示,现在你把data所有的下标,就指向了nowDate,
最后又把nowDate换成了2017年,这样通过data去找到的nowDate,肯定都是最后一位主人了。
为什么把data.push(nowDate)改成data.push(new Date(nowDate))就行呢,因为这样做,就不是在街道口写下你的门牌号,而是把你当时房子的资料,放在指示牌上,别人找你,找到的是写指示牌时,你住的房子。


while循环中始终push的是同一个对象, 你希望同一个对象,在最终输出的时候显示不同的值么?

【热门文章】
【热门文章】