如果使用前导零,Javascript循环停止在奇怪的值

时间:2016-02-02 11:25:12

标签: javascript loops

我有一个循环,它返回一个包含增量值的图像源列表。在测试时,由于图像src的原因,我使用带有前导零的4位数值。

我注意到的一件奇怪的事情是,如果我在循环条件中使用前导零,它会在398处停止。如果我删除了这个零,它就会正确完成。

// Stops at 398
for (var i = 0001; i < 0617; i++) {
  $('.target').append('{"src": "IMG_' + i + '.jpg", "id":"image' + i + '"}');
}

// Completes
for (var i = 0001; i < 617; i++) {
  $('.target').append('{"src": "IMG_' + i + '.jpg", "id":"image' + i + '"}');
}

Here's a fiddle with a working example

有没有人对这种行为有任何见解?

2 个答案:

答案 0 :(得分:3)

带有前导零的javascript中的数字是八进制数。

在此处详细了解:http://www.javascripter.net/faq/octalsan.htm

答案 1 :(得分:0)

执行此操作的一种简单方法是将零添加为文本。我用这两行更新了你的小提琴:

var number = i;
if (number<=9999) { number = ("000"+number).slice(-4); }

您可以在此处找到它:https://jsfiddle.net/16p455z7/2/