好的,所以我在一个以数组为唯一参数的函数中有一个非常简单的 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));
答案 0 :(得分:2)
如果查看浏览器控制台,javascript会返回错误:
ReferenceError: y is not defined
因为没有定义y,所以循环因引发ReferenceError而停止。
答案 1 :(得分:1)
您的代码会抛出ReferenceError
。 JavaScript中的Error
与其他语言中的Exceptions
类似。它们打破了正常的程序流程并冒泡,直到找到满足其类型的catch语句。
如果未捕获Error
,则引擎会将其报告为Uncaught [error]
,并且当前事件结束。
答案 2 :(得分:0)
所有错误在JavaScript中都是致命的(除非你抓住它们,即使那时只有它可以捕获)。
因此,无论是否还有其他迭代要运行,循环都会立即退出。