2、而在jquery中 $.each则对应的使用return true 和return false。
break可以跳出switch...case语句,继续执行switch语句后面的内容。break语句还可以跳出循环,也就是结束循环语句的执行。
continue语句的作用为结束本次循环,接着进行下一次是否执行循环的判断。
continue与break的区别是:break是彻底结束循环,而continue是结束本次循环
由于jQuery的each是通过循环调用回调函数的方式实现的,所以在函数内写的break只适用于函数内部的逻辑,并不能对函数外层的循环起到作用,所以break不管用。具体可以分析一下jQuery的源码,下面以jQuery2.1.4中的each方法举例:
each: function( obj, callback, args ) {var value,
i = 0,
length = obj.length,
isArray = isArraylike( obj )//如果obj是一个类似数组的结构(可用for遍历的),则为true
if ( args ) {
if ( isArray ) {
for ( i < length i++ ) {
value = callback.apply( obj[ i ], args )//循环调用
if ( value === false ) {//如果返回值全等于(包括类型和值)false,就退出循环
break
}
}
} else {
for ( i in obj ) {//这种是对象的,需要用for in遍历
value = callback.apply( obj[ i ], args )
if ( value === false ) {
break
}
}
}
// A special, fast, case for the most common use of each
} else {
if ( isArray ) {
for ( i < length i++ ) {
value = callback.call( obj[ i ], i, obj[ i ] )
if ( value === false ) {
break
}
}
} else {
for ( i in obj ) {
value = callback.call( obj[ i ], i, obj[ i ] )
if ( value === false ) {
break
}
}
}
}
return obj
}
由源码可以看出,只有回调函数返回的值为false时,才会退出循环