试图理解javascript中的for循环
我正在使用JavaScript实现HTML5拖放,我发现了一些实际工作的示例代码。但这一段代码对我来说毫无意义。这段代码在做什么试图理解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 =
// 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你的答案,但没有足够的声誉让它出现。如果我的答案对你有帮助,你也可以接受