Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果使用前导零,Javascript循环将在奇怪值处停止_Javascript_Loops - Fatal编程技术网

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

如果使用前导零,Javascript循环将在奇怪值处停止,javascript,loops,Javascript,Loops,我有一个循环,它返回一个带有增量值的图像源列表。测试时,由于图像src,我使用了前导零的4位值 我注意到的一件奇怪的事情是,如果我在循环中的条件上使用前导零,它将在398处停止。如果我删除这个零,它将正确完成 // Stops at 398 for (var i = 0001; i < 0617; i++) { $('.target').append('{"src": "IMG_' + i + '.jpg", "id":"image' + i + '"}'); } // Comple

我有一个循环,它返回一个带有增量值的图像源列表。测试时,由于图像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 + '"}');
}
//在398处停止
对于(变量i=0001;i<0617;i++){
$('.target').append('{“src”:“IMG_'+i+'.jpg”,“id”:“image'+i+'”});
}
//完成
对于(变量i=0001;i<617;i++){
$('.target').append('{“src”:“IMG_'+i+'.jpg”,“id”:“image'+i+'”});
}


有人了解这种行为吗?

javascript中带前导零的数字是一个八进制数


在这里阅读更多信息:

一个简单的方法就是将零添加为文本。我用这两句话更新了你的小提琴:

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

如果(number0617是八进制值。它的十进制值是399。除了八进制值之外,为什么还要使用前导零呢?对于img src,你会更好。@Abhitalks我是在填充数字。我没有提供完整的源代码,因为我只是想知道我注意到的这个特定问题。你注意到了吗ng零不会出现在输出中?您将i设置为数字,而不是字符串,因此前导零不会保留。(即使除了八进制问题,它也不会影响1的起始值。)@nnnnnn再次-不是问题。我删除了很多代码只是为了这个示例。我只是想知道为什么它在398处停止