Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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中的for循环_Javascript_For Loop - Fatal编程技术网

试图理解javascript中的for循环

试图理解javascript中的for循环,javascript,for-loop,Javascript,For Loop,我正在使用JavaScript实现HTML5拖放,我发现了一些实际工作的示例代码。但这一段代码对我来说毫无意义。这段代码在做什么 // fetch FileList object var files = e.target.files || e.dataTransfer.files; // process all File objects for (var i = 0, f; f = files[i]; i++) { } 我被FOR循环弄糊涂了。我了解它的基本用途: for (var i =

我正在使用JavaScript实现HTML5拖放,我发现了一些实际工作的示例代码。但这一段代码对我来说毫无意义。这段代码在做什么

// fetch FileList object
var files = e.target.files || e.dataTransfer.files;

// process all File objects
for (var i = 0, f; f = files[i]; i++) {

}
我被FOR循环弄糊涂了。我了解它的基本用途:

for (var i = 1; i < 5; i++)
for(变量i=1;i<5;i++)

但是这是如何工作的呢?什么是
var i=0,f

初始化表达式
var i=0,f
声明两个变量,
i
f
i
被初始化为零,而
f
未被初始化。然后,对于循环中的每次迭代,将
文件
数组中位置
i
处的值分配给
f
。此赋值的结果作为循环条件进行计算。在每次迭代结束时,
i
的整数值增加1


在较高的级别上,这只是迭代
文件
数组中的值,将每个值分配给
f
,以便在循环体中使用。一旦到达
文件
数组中没有真实值的索引,循环即退出。这里假设
文件
数组中的所有有效值都是真实值。

这是一个变量声明。你有什么特别不明白的吗?我只是不明白它怎么知道它在循环的末尾。所以你问的是
f=files[I]
作为条件。可能是OK的重复,所以假设我有2个文件,第三次通过它会设置f=files[2],它不存在,所以它会自动停止。是吗?是的,你明白了。
f=files[i]
的结果将是
undefined
,其计算结果为false并导致循环退出。非常好,谢谢。我在任何地方都找不到记录在案的。我试图+1你的答案,但没有足够的声誉让它出现。如果我的答案对你有帮助,你也可以接受