我正在使用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++)
但这是如何运作的?什么是var i = 0, f
?
答案 0 :(得分:1)
初始化表达式var i = 0, f
声明了两个变量i
和f
。 i
初始化为零,而f
未初始化。然后,对于循环中的每次迭代,i
数组中位置files
的值被分配给f
。此赋值的结果被评估为循环条件。在每次迭代结束时,i
的整数值加1。
在高级别,这只是迭代files
数组中的值,将每个值分配给f
以便在循环体中使用。一旦到达files
数组中没有真值的索引,就会退出循环。这里假设files
数组中的所有有效值都是真实的。