javascript - 为什么这个 JS 循环不能从函数内部返回变量

标签 javascript html

关于下面的代码,我试图从循环内部返回一个变量。我从函数内部调用循环,但是当运行脚本时,我得到“ Uncaught 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;
})();

编辑:

这是因为 loopFunction 中分配的 newVar 的作用域为该函数,这意味着它仅存在于该函数内部。

关于javascript - 为什么这个 JS 循环不能从函数内部返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571149/

相关文章:

javascript - 隐藏元素,1秒延迟

JavaScript时钟

javascript - 动态内容对齐问题

javascript - 将 YouTube 图像占位符替换为视频

javascript - Angular 4迭代对象的对象以获得动态数据

javascript - 有人可以给我一个示例 JavaScript RegEx 来使输入的 2 个重复字符无效吗

javascript - for循环完成后执行函数

python - 如何使用Python从网页的检查元素中获取数据

html - 单击后链接颜色保持蓝色,直到单击视口(viewport)上的其他地方

javascript - 是否可以确定 HTML5 div 标签的最小宽度?