在JavaScript中使用try-catch

在JavaScript中使用try-catch,javascript,try-catch,Javascript,Try Catch,在JavaScript中使用try/catch的时间密集程度如何?我有一个应用程序,我在一个函数中使用它,这个函数被调用了几百次。现在我担心,try/catch语句占用了太多时间,应用程序将比没有它花费更长的时间。try/catch子句在javascript中创建了一个新的作用域,因此必须来自父作用域的每个变量都会稍微慢一点 开销不是很高,但是对于内部循环来说太大了,不能完全忽略 请看此视频以获得更深入的解释:通常,在try块中执行的代码非常昂贵。但是,如果要调用try块数百次,这可能不是问题。

在JavaScript中使用
try
/
catch
的时间密集程度如何?我有一个应用程序,我在一个函数中使用它,这个函数被调用了几百次。现在我担心,
try
/
catch
语句占用了太多时间,应用程序将比没有它花费更长的时间。

try/
catch
子句在javascript中创建了一个新的作用域,因此必须来自父作用域的每个变量都会稍微慢一点

开销不是很高,但是对于内部循环来说太大了,不能完全忽略


请看此视频以获得更深入的解释:

通常,在
try
块中执行的代码非常昂贵。但是,如果要调用
try
块数百次,这可能不是问题。如果是几十万,您可能需要重新思考您的设计。

在jsPref上有一些不错的测试:


结论:在主浏览器上,将null设置为最小差异。您应该注意以下几点:

“程序优化的第一条规则:不要这样做。程序优化的第二条规则(仅限专家!):现在不要这样做。”-迈克尔A.杰克逊


我浪费时间优化对性能几乎没有影响的代码部分。通过运行一些计时实验,确保您知道什么是慢的

try
块引入了新的作用域是不正确的。@Pointy:是的,但我现在想不出更好的描述了。你有什么建议吗?我知道你的意思,但我对复杂的“语言律师”术语一无所知:-)thx,很好的网站(尤其是您可以创建自己的测试用例。我最感兴趣的一点是,如果try-catch语句比if语句慢得多。根据测试,它大约慢25%。我必须在最终应用程序中查看这是否可以接受。如果从未输入catch块,则没有区别。如果输入了,则可能会导致巨大的性能损失。)mance issues b/c catch块是动态范围。切勿将其用于程序逻辑,仅用于实际不可避免的错误。如果未引发错误,则包含try和catch语句的函数将内联,否则,如果是方法/函数,则将进行去优化。上面链接的PDF现在是404s,但可以在以下位置找到: