理解for循环:在循环中使用未定义的变量

时间:2013-09-19 15:46:19

标签: javascript arrays variables loops for-loop

好的,所以我在一个以数组为唯一参数的函数中有一个非常简单的 for循环。我已将 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));

3 个答案:

答案 0 :(得分:2)

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

ReferenceError: y is not defined

因为没有定义y,所以循环因引发ReferenceError而停止。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

所有错误在JavaScript中都是致命的(除非你抓住它们,即使那时只有它可以捕获)。

因此,无论是否还有其他迭代要运行,循环都会立即退出。