-1

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

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

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

请参阅此 codePen: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));
4

3 回答 3

2

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

ReferenceError: y is not defined

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

于 2013-09-19T15:49:27.927 回答
1

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

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

于 2013-09-19T15:49:04.877 回答
0

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

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

于 2013-09-19T15:48:32.303 回答