簡體   English   中英

沒有邏輯運算符,for循環如何知道何時停止?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM