js 中的 try/catch
程序开发
2023-09-22 18:28:52
先看一段代码吧,觉得这个会输出多少?
function test(){
var i = “0”;
try{
i += “1”;
return i;
}
catch(e){}
finally{
i += “2”;
}
return i;
}
console.log(test());
“012”?根据java中的用法描述,finally中的代码一定会执行的?
但实际结果是这样的,[黑人问号]
在中间在打一个输出,会发现确实是执行了,但是为何不是我们想要的结果?
在try/catch中 当try中存在 return continue break 等语句时,会先将其返回值存储在一个局部变量中,在去执行finally中的语句,所以虽然在 finally中i确实发生了改变,但是最后返回的并不是 在finally中改变了的i值,而是储存在局部变量中的i值
标签:
上一篇:
ASP.NET Core SignalR系列之Hub教程
下一篇:
相关文章
-
无相关信息