关于视频中try{...;break;}catch{}
for (var i = 0; i < len; i++) {
try{
// 创建XMLHttpRequest对象
xhr=new ActiveXObject(xhrArr[i]);
break;
}catch(ex){
//TODO handle the exception
}
}
这里,当i=0的时候,xhr=new ActiveXObject(xhrArr[0]);如果ActiveXObject支持这个版本的话,就创建成功,并且赋值给xhr,下一行代码break直接跳出循环,这个我可以理解,但当不支持这个版本,new ActiveXObject(xhrArr[0])是什么?猜想一,undefined,那这样的话xhr被赋值成了undefined,然后break,结束循环,这解释不通。猜想二,报错,转到catch,然后继续i=1。这样理解对吗
25
收起
正在回答
3回答
同学你好,明白同学的意思了,可以理解成抛出错误,执行catch,跳过break,执行下一次循环。
祝学习愉快!
好帮手慕星星
2020-04-26 11:56:07
同学你好,是这样运行的,可以测试下面的例子
1 2 3 4 5 6 7 8 9 10 11 12 | var arr = [ "1" , 2]; for ( var i = 0; i < arr.length; i++) { try { if ( typeof arr[i] === 'number' ) { console.log(arr[i]); break ; } throw 'error' } catch (e) { console.log(e) } } |
判断数组中每项的类型,如果是数字类型就输出,然后停止,不是就执行catch(有抛出的话就会显示)。
自己测试下,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧