iteye_3775 2010-06-30 14:10
浏览 296
已采纳

对JavaScript异常里finally的不解?

下面是对异常的一个测试例子,可是我对里面的finally有不解之处,finally在return之前执行,可是为什么没有给str赋值为null呢?

[code="JavaScript"]
var f = (function(){
var str = "before";
try{
return str;
}
finally{
str = null;
}
})();
alert(f);//in browser show: before
[/code]

  • 写回答

1条回答 默认 最新

  • OPPPPOP 2010-06-30 15:24
    关注

    finally 里有reutrn break continue throw 时会在return 之前执行
    否则在return 后执行
    [code="javascript"]
    var f=(function(){

    var str = 'before';

    var i=1//0;
    while(true){
    try{
    return str;
    }

    finally{
    str = null;

    if(i--)continue;
    }
    }
    })();

    alert(f);
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?