素材巴巴 > 程序开发 >

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教程 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。