84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
代码如下
var test = true; $(".input").each(function() { var inputName = $(this).attr("name"); test = test && invokeValidateFunction(inputName); });
invokeValidateFunction()返回布尔值,为什么使用逻辑运算符后只判断了第一个input标签后就退出each遍历了,而改用"&"后可以完成遍历。
业精于勤,荒于嬉;行成于思,毁于随。
Sorry。刚才的回答理解有些错误,因为 && 的短路原则,如果test为false时,后面的invokeValidateFunction()就不会被执行,也就是说,这段代码的意思是,如果检测到一个参数验证不合法,就不会检测后面的参数了。而改为 & 之后,因为 & 只是位运算法,所以总是会执行invokeValidateFunction()的验证,并且如果有验证失败,就会因为和原则,把test设为0,也就是false。使用 & 和 && 在这段代码中的效果是一样的,只是 && 会在第一次验证失败后就停止验证。
你的invokeValidateFunction代码贴出来看看
遍历是有的,只是invokeValidateFunction(inputName)这个函数没执行,你没看出来效果而已,楼上正解
按位与(&)返回的应该是1和0 return 0 不会停止each循环 所以可以完成遍历
Sorry。刚才的回答理解有些错误,
因为 && 的短路原则,如果test为false时,后面的invokeValidateFunction()就不会被执行,也就是说,这段代码的意思是,如果检测到一个参数验证不合法,就不会检测后面的参数了。
而改为 & 之后,因为 & 只是位运算法,所以总是会执行invokeValidateFunction()的验证,并且如果有验证失败,就会因为和原则,把test设为0,也就是false。
使用 & 和 && 在这段代码中的效果是一样的,只是 && 会在第一次验证失败后就停止验证。
你的
invokeValidateFunction
代码贴出来看看
遍历是有的,只是invokeValidateFunction(inputName)这个函数没执行,你没看出来效果而已,楼上正解
按位与(&)返回的应该是1和0 return 0 不会停止each循环 所以可以完成遍历