使用大数字循环不起作用

时间:2017-03-27 06:21:55

标签: javascript

此循环有效:

var time;
for (time = 0; time < 5; time++) {
  // Runs 5 times
  console.log('Log');
}

但这不是:

var time;
for (time = 1490543999999999; time <= time - (518400000000 * 10) ; time = time - 518400000000) {
          console.log('Log');
      }

为什么?是因为数字太大了吗?那么如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

与第一个循环有两个不同之处:

  • 由于您正朝着相反的方向行进,因此需要对循环条件进行相反的比较:>而不是<=

  • 当您更改 time 变量时,不能将其用作边界值。使用不同的变量 - 一个不会从初始值

  • 更改的变量

var time, initTime;
for (initTime = time = 1490543999999999; time > initTime - (518400000000 * 10) ; time = time - 518400000000) {
    console.log('Log');
}

或更好(避免重新计算限制):

var time, endTime;
for (time = 1490543999999999, endTime = time - 518400000000 * 10; time > endTime; time -= 518400000000) {
    console.log('Log');
}