簡體   English   中英

為什么這個JS循環無法從函數內部返回變量

[英]Why can't this JS loop return a variable from inside the function

關於下面的代碼,我試圖從循環內部返回一個變量。 我從函數內部調用循環,但是運行腳本時,出現“未捕獲的ReferenceError:未定義newVar”。

有人可以解釋為什么不返回值嗎?

https://jsfiddle.net/95nxwxf4/

<p class="result"></p>

var testVar = [0,1,2];

var loopFunction = function loopFunction() {

    for (var j=0;j<testVar.length;j++) {
        if (testVar[j]===1) {
          var newVar = testVar[j];
          return newVar;
        }   
    }
    return false;
};

var privateFunction = (function privateFunction() {

  loopFunction();
  document.querySelector('.result').innerHTML = newVar;
})();

您需要分配從loopFunction返回的值:

var privateFunction = (function privateFunction() {

  var newVar = loopFunction();
  document.querySelector('.result').innerHTML = newVar;
})();

編輯:

這是因為在newVar分配的loopFunction該函數,這意味着它僅存在於該函數內部。

由於變量newVar的范圍僅在loopFunction中定義,因此未定義newVar。

實際上,為loopFunction返回了一個值,但僅僅是一個值,變量newVar已超出范圍,因此未在此行中定義。

document.querySelector('.result').innerHTML = newVar;

更改為:

document.querySelector('.result').innerHTML = loopFunction();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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