try / catch块中的return语句如何工作?

function example() {
    try {
        return true;
    }
    finally {
        return false;
    }
}


我期望此函数的输出为true,但实际上为false

最佳答案

最后总是执行。这就是它的用途,这意味着您的情况将使用返回值。

您将需要更改代码,因此更像这样:

function example() {
    var returnState = false; // initialisation value is really up to the design
    try {
        returnState = true;
    }
    catch {
        returnState = false;
    }
    finally {
        return returnState;
    }
}


一般来说,您永远都不想在一个函数中有多个return语句,这就是为什么。

08-05 17:55