gpt4 book ai didi

Javascript:IF block 或 TRY/CATCH 哪个更有效?

转载 作者:行者123 更新时间:2023-12-03 13:11:28 27 4
gpt4 key购买 nike

我喜欢关于这段代码更有效的一些其他意见。基本上在下面的代码中,有一个 setInterval 循环,在代码在循环中运行之前,我需要满足 4 个要求。所以在 v.1 中我写了一个 if 语句检查所有 4。工作正常。

然后我切换到只使用 try/catch,而我想要执行的代码位于 try{} 中。逻辑是在每个循环期间,都会生成一个异常,但会为每个无效条件抑制。在所有条件都为真的最后一个循环中,代码执行并清除间隔。

要么工作。我喜欢 try/catch 方法,因为我需要编写的条件代码更少并且担心会破坏。但我担心 try/catch 效率很低,尤其是在 setInterval() 循环达到 100 毫秒时。其他聪明人对 SO 有什么看法?

试着抓

var intvar = setInterval(function(){
try{
clearInterval(intvar);

jQuery('#'+nav[pageid].t1+'>a').replaceWith(jQuery('<span>'+jQuery('#'+nav[pageid].t1+'>a').text()+'</span>'));

//set display classes for nav
jQuery('#'+nav[pageid].t1).addClass('selected').find('#'+nav[pageid].t2).addClass('subselect'); //topnav
jQuery('#'+nav[pageid].t3).addClass('selected').find('#'+nav[pageid].t4).addClass('subselect'); //leftnav
}catch(err){}
},100);

中频 block
var intvar = setInterval(function(){

if(typeof jQuery == 'function' && typeof nav == 'object' && typeof pageid != 'undefined' && typeof document.getElementById('leftnav') == 'object'){
clearInterval(intvar);
jQuery('#'+nav[pageid].t1+'>a').replaceWith(jQuery('<span>'+jQuery('#'+nav[pageid].t1+'>a').text()+'</span>'));

//set display classes for nav
jQuery('#'+nav[pageid].t1).addClass('selected').find('#'+nav[pageid].t2).addClass('subselect'); //topnav
jQuery('#'+nav[pageid].t3).addClass('selected').find('#'+nav[pageid].t4).addClass('subselect'); //leftnav
}

},100);

最佳答案

异常(exception)应该用于特殊情况(即您不希望正常发生的事情)。通常,您不应该使用异常来捕获可以使用 if 语句测试的内容。

另外,据我了解,异常比 if 语句要昂贵得多。

关于Javascript:IF block 或 TRY/CATCH 哪个更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com