请问以下JS代码的输出结果以及变量i的值是?
var i = 100;
function foo() {
bbb: try {
console.log("position1");
return i++; }
finally {
break bbb;
}
console.log("position2");
return i;
}
foo();
A
position1、position2、100
B
position1、position2、101
C
position1、101
D
100
正确答案:B
官方解析:
注意break除了用于中断循环以及switch语句,还可以用于标签化语句的中断,
这里的标签化语句即在一般语句前面多加了xxx:的标签,
如果在try或try except块中使用了return,那么这个break将发生于最后一行语句之后,但是却是在return语句之前。
所以这里的break是去中断bbb里面的语句,执行完所有的操作后才阻止了return,因此i是增加了,然后继续执行剩下的代码,在输出position2后才返回i变量。
以下主要说明三点:
try...catch...finally的用法
break的用法
本题的解题过程
一、try catch 还有finally的用法
标签:语句,break,return,中断,try,finally,console From: https://www.cnblogs.com/longmo666/p/17825191.html