[英]How does a for-loop know when to stop without logical operators?
我使用以下示例說明如何使用文件輸入控件和File API讀取多個文件: http : //www.htmlgoodies.com/beyond/javascript/read-text-files-using-the-javascript-filereader.html #fbid = ZtHD9f5RFBF 。
問題是for循環如何知道何時停止? 似乎沒有邏輯條件可以在每次迭代中進行測試,僅文件變量的分配即可。 變量i增加了,但是它如何影響循環的終止?
我還是Java語言的新手。
<input type="file" id="fileinput" multiple />
<script type="text/javascript">
function readMultipleFiles(evt) {
//Retrieve all the files from the FileList object
var files = evt.target.files;
if (files) {
for (var i=0, f; f=files[i]; i++) {
var r = new FileReader();
r.onload = (function(f) {
return function(e) {
var contents = e.target.result;
alert( "Got the file.n"
+"name: " + f.name + "n"
+"type: " + f.type + "n"
+"size: " + f.size + " bytesn"
+ "starts with: " + contents.substr(1, contents.indexOf("n"))
);
};
})(f);
r.readAsText(f);
}
} else {
alert("Failed to load files");
}
}
document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false);
</script>
當files[i]
為undefined/null
時,它將停止。
例
var a = [2,3]
for (var i = 0, f; f=a[i]; i++) {
console.log(f);
};
第一次a [i]將為2,它將打印2
第二次a [i]為3,它將打印3
第三次a [i]返回undefined/null
,因此表達式f=a[i]
給出的結果undefined
,並且它將停止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.