throw 函数是否符合 ES5/ES6 标准?

Is throwing a function compliant with ES5/ES6 standard?

以下代码是否符合标准(strict/sloppy)?它的行为类似于 IIFE,但可能提高了可读性恕我直言:

try {
    throw function (){}
} catch(foo) {
    foo();
}

我不知道表演。

是的。您可以抛出任何值,包括函数引用。您抛出的不一定是错误(尽管这是最佳实践)。

您可以在规范中看到 throw accepts any Expression, which can result in any value, and catch 忠实地提供了抛出的值。