【问题标题】:Understanding for loops: use of undefined variables inside the loop理解 for 循环:在循环中使用未定义的变量
【发布时间】:2013-09-19 15:46:19
【问题描述】:

好的,所以我在函数内部有一个非常简单的 for 循环,它以 array 作为其唯一参数。我已将 array.length 设置为循环的条件。

在循环中我使用了一个未定义的变量和一个document.write。

为什么 javascript 退出循环在 1 次运行后 因为变量 y 未设置?我期待循环继续(array.length)。

查看此代码笔:http://codepen.io/anon/pen/wmlBC(取消注释 var y)。

    function checkName(array){

    var i = 0;
    var y = "";

    for(i = 0; i < array.length; i++){

        y += array[i]

    }

    return y;


}

var arrayNames = ["liselore", "karel", "david", "stefan", "kevin", "sandy"];

console.log(checkName(arrayNames));

【问题讨论】:

  • 当我取消注释y时对我来说很好
  • 为我工作:jsfiddle.net/MsFcp
  • 我发布这个问题的原因是为了理解for循环。我知道如果我取消注释 y 变量它会起作用,但是问题是如果未设置循环内的变量,为什么 javascript 会退出循环。谢谢,为您解答...

标签: javascript arrays variables loops for-loop


【解决方案1】:

如果您查看浏览器控制台,javascript 会返回错误:

ReferenceError: y is not defined

因为 y 没有定义,循环会因抛出 ReferenceError 而停止。

【讨论】:

    【解决方案2】:

    您的代码会抛出 ReferenceError。 JavaScript 中的 Errors 与其他语言中的 Exceptions 一样。他们打破正常的程序流程并冒泡,直到找到满足他们类型的 catch 语句。

    如果Error 未被捕获,引擎会将其报告为Uncaught [error],并且当前事件结束。

    【讨论】:

      【解决方案3】:

      JavaScript 中的所有错误都是致命的(除非您捕获它们,即使这样也只有当它是可捕获的)。

      因此,循环将立即退出,无论是否有任何其他迭代要运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-19
        • 1970-01-01
        • 2016-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多