Javascript 打破jQuery循环与原生JS for循环。哪个更好?

Javascript 打破jQuery循环与原生JS for循环。哪个更好?,javascript,jquery,Javascript,Jquery,首先,如果标题问题与我要问的问题不完全一致,请道歉 我的问题是我想有一个循环,一旦条件满足,控制就要从这个循环中脱离出来 现在,使用本机JS“for loop”和“return”更好,还是使用jQuery.each()和return false更好,以打破循环 如果您可以使用简单的老JavaScript方法在集合上循环,请使用它并正常跳出 除非有很好的理由使用jQuery.each(),否则我会尽量不让它出现在我的代码中。这真的是一个非常简单的快捷方式,通过使用普通的旧JavaScript,我可

首先,如果标题问题与我要问的问题不完全一致,请道歉

我的问题是我想有一个循环,一旦条件满足,控制就要从这个循环中脱离出来


现在,使用本机JS“for loop”和“return”更好,还是使用jQuery.each()和return false更好,以打破循环

如果您可以使用简单的老JavaScript方法在集合上循环,请使用它并正常跳出


除非有很好的理由使用
jQuery.each()
,否则我会尽量不让它出现在我的代码中。这真的是一个非常简单的快捷方式,通过使用普通的旧JavaScript,我可以对代码的实际操作保持更多的控制。

如果您可以使用普通的旧JavaScript方法在集合上循环,请使用它并正常进行


除非有很好的理由使用
jQuery.each()
,否则我会尽量不让它出现在我的代码中。这真的是一个非常简单的快捷方式,通过使用普通的老JavaScript,我可以对代码的实际操作保持更多的控制。

我想你的意思是
中断
?撇开性能不谈,用你觉得更清楚的东西

有些人会争辩说,
for…break
(或者甚至是带有适当停止条件的
for
)的简洁性将赢得一个库函数,该库函数创建一个匿名函数,并在您的代码和他们的代码之间来回传递控制权,然后再将控制权传递给您的代码,但它们都可以工作


如果您确实关心性能方面(您可能不应该这么做,可读性对这一点更为重要),那么
for
也会获胜——为每个元素调用函数并处理停止条件的返回值不是“免费的”。

我想您的意思是
break
?撇开性能不谈,用你觉得更清楚的东西

有些人会争辩说,
for…break
(或者甚至是带有适当停止条件的
for
)的简洁性将赢得一个库函数,该库函数创建一个匿名函数,并在您的代码和他们的代码之间来回传递控制权,然后再将控制权传递给您的代码,但它们都可以工作


如果您确实关心性能方面(您可能不应该这么做,可读性对这一点更为重要),那么
for
也会获胜——为每个元素调用函数并处理停止条件的返回值并不是“免费的”。

如果可行,我更喜欢使用简单的JS循环

您可以更好地控制普通JS for循环,因为在那里您可以从整个函数返回。在jQuery
.each()
循环中,您只能使用
返回值停止
.each()
迭代。如果要从主机函数返回
,则需要编写额外的代码。如果可能的话,我更喜欢简单的JS for循环

在JS调试器中,简单的JS for循环也更容易进入、通过和退出。要进入
.each()
循环,您必须单步执行大量jQuery代码,或者必须在
.each()
循环中放置一个断点并运行到该断点

例如,要在满足循环内的某些条件时从主机函数返回,在两个循环中的工作方式如下:

普通JS
在普通JS版本中,在调试器中单步执行此函数以查看其工作或不工作的原因非常容易。

如果可行,我更喜欢使用普通JS循环

您可以更好地控制普通JS for循环,因为在那里您可以从整个函数返回。在jQuery
.each()
循环中,您只能使用
返回值停止
.each()
迭代。如果要从主机函数返回
,则需要编写额外的代码。如果可能的话,我更喜欢简单的JS for循环

在JS调试器中,简单的JS for循环也更容易进入、通过和退出。要进入
.each()
循环,您必须单步执行大量jQuery代码,或者必须在
.each()
循环中放置一个断点并运行到该断点

例如,要在满足循环内的某些条件时从主机函数返回,在两个循环中的工作方式如下:

普通JS
在简单的JS版本中,在调试器中单步执行此函数以查看其工作或不工作的原因非常简单。

我通常更喜欢
$。每个
都使用数组(无
I
等)看起来更干净,并且更接近更舒适的语言所具有的
foreach
语法。此外,它有自己的范围,这有助于避免闭包的一些常见错误:

for(var i = 0; i < a.length; i++) {
    a[i].onclick = function() {
        // this will display the index of the clicked 
        // element. Or maybe not?
        alert(i); 
    }
}
for(变量i=0;i

跳过控制级别(打破多个循环,或者在循环中间从整个函数返回)不可能使用<代码> $。每个尽管如此,如果需要的话,请使用<代码> < /COD>。另外,使用基于函数的循环进行交互式调试更为痛苦。

我通常更喜欢
$。每个
都使用数组(无
I
等)看起来更干净,并且更接近更舒适的语言所具有的
foreach
语法。此外,它有自己的范围,这有助于避免闭包的一些常见错误:

for(var i = 0; i < a.length; i++) {
    a[i].onclick = function() {
        // this will display the index of the clicked 
        // element. Or maybe not?
        alert(i); 
    }
}
for(变量i=0;i
跳过控制级别(中断多个循环或从整个函数返回
for(var i = 0; i < a.length; i++) {
    a[i].onclick = function() {
        // this will display the index of the clicked 
        // element. Or maybe not?
        alert(i); 
    }
}