return false break;
js中的return false; break;
var list = [, , , , ];
var list2 = ['a', 'b', 'c', 'd'];
for (var j = ; j < list2.length; j++) {
for (var i = ; i < list.length; i++) {
alert(list[i]);
if (list[i] == ) break;
}
alert(list2[j]);
}
alert("ff"); // 1 2 3 a 1 2 3 b 1 2 3 c 1 2 3 d
由结果可以看出break只能跳出第一个循环
return false;

这个的原因是return 只能用在函数内部,不能再全局中使用。
function a() {
var list = [, , , , ];
var list2 = ['a', 'b', 'c', 'd'];
for (var j = ; j < list2.length; j++) {
for (var i = ; i < list.length; i++) {
alert(list[i]);
if (list[i] == ) { return false; }
}
alert(list2[j]);
}
alert("ff");
}
a(); //1 2 3
这个说明 return false; 把整个函数都停止了
<script type="text/javascript" >
function a() {
var list = [, , , , ];
var list2 = ['a', 'b', 'c', 'd'];
for (var j = ; j < list2.length; j++) {
for (var i = ; i < list.length; i++) {
alert(list[i]);
if (list[i] == ) { return false; }
}
alert(list2[j]);
}
alert("ff");
}
function bb() {
a();
alert("ggg");
}
bb(); //1 2 3 ggg
</script>
return false; 至停止了其本身的函数
function a() {
var list = [, , , , ];
var list2 = ['a', 'b', 'c', 'd'];
for (var j = ; j < list2.length; j++) {
for (var i = ; i < list.length; i++) {
alert(list[i]);
if (list[i] == ) { return false; }
}
alert(list2[j]);
}
alert("ff");
}
function bb() {
a();
alert("ggg");
} //1 2 3
bb();
alert("dfs"); //1 2 3 ggg dfs
全局中也只是把自己所在的函数停止了,不管是几层循环
在jquery中也是这样吗?
试试!
<script type="text/javascript" >
var list = [, , , , ];
var list2 = ['a', 'b', 'c', 'd'];
$(list).each(function (key, item) {
$(list2).each(function (key1, item1) {
alert(item1);
if (item1 == 'b') {
return false;
}
});
});//a b a b a b a b a b
</script>
可以看出return false;在全局中使用了,为什么
jquery 中each代码
// args is for internal usage only
each: function( object, callback, args ) {
var name, i = ,
length = object.length,
isObj = length === undefined || jQuery.isFunction(object); if ( args ) {
if ( isObj ) {
for ( name in object ) {
if ( callback.apply( object[ name ], args ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.apply( object[ i++ ], args ) === false ) {
break;
}
}
} // A special, fast, case for the most common use of each
} else {
if ( isObj ) {
for ( name in object ) {
if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
break;
}
}
} else {
for ( var value = object[];
i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
}
} return object;
},
jquery中带args的调用,
注意:
由上面的方法可以看出,有args时,是通过apply方式调用的,所有args必须为数组
var list = [, , , , ];
$.each(list, function (key, item) {
alert(key + "||" + item);
},['aaa','bbb','ccc']);
从each代码中可以看出,为什么可以在全局中使用,
因为这个时候,return false 其实不在全局中,在callback中,在一个function中,return false 也只是停止了循环中的一个callback

callback中不能使用break;
所以在each中return false 来代替break跳出循环;只能跳出一层循环。
总结:
在js中break只能跳出一个循环
return false 可以停止其所在的function,但与其function所并行的操作继续运行。
在jquery的each中:
用return false;来跳出一个循环。不能使用break;
注意:switch中可以使用break;但不可以使用continue;
例:
<script type="text/javascript">
var arr = [, , , , ];
for (var i = ; i < arr.length; i++) {
var val = arr[i];
switch (val) {
case : if (val == ) { console.log("a"); continue; } break;
case : if (val == ) { console.log("b"); continue; } break;
case : if (val == ) { console.log("c"); continue; } break;
default: break;
}
console.log("switch end" + i);
}
</script>

可以看出在上例中break;是跳出switch
continue是跳出for循环中的一个循环。
return false break;的更多相关文章
- 在jquery中each循环中,要用return false代替break,return true代替continue。
在jquery中each循环中,要用return false代替break,return true代替continue. $.each(data, function (n, value) { if(v ...
- js跳出循环的方法区别( break, continue, return ) 及 $.each 的(return true 和 return false)
js编程语法之break语句: break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句. 由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的 ...
- js中return 、return false 、return true、break、continue区别
在开发中不熟悉这三者区别的同学,一般都知道return可以中止,但会根据字面意思觉得return true 中止当前函数执行,但其后的函数还会继续执行.return false 中止当前函数执行,其后 ...
- 原生js使用forEach()与jquery使用each遍历数组,return false 的区别
原生js使用forEach()与jquery使用each()遍历数组,return false 的区别: 1.使用each()遍历数组a,如下: var a=[20,21,22,23,24]; $.e ...
- return、break、continue的区别
一.定义 return:语句用于终止当前方法运行,返回到调用该方法的语句处.如有返回值,则在return后面提供相应的返回值. break:其主要用于循环语句和switch语句,其作用均是强行终止语句 ...
- javaScript中的return,break,continue的区别
导语: javaScript中有三种方法可以跳出循环或者终止循环.分别为break.return.continue. 正文: 一.break break 会使得整个程序终止执行或者包含了最内层的循环或 ...
- javascript中的return、return true、return false、continue区别
1.语法为:return 表达式; 2.w3c中的解释: 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 也就是:当代码执行到return语句时,函数返回一个结果就结束运行了,ret ...
- oncopy="document.selection.empty()"跟oncopy="return false"什么区别?
实现效果一样,禁止复制. 区别: oncopy="document.selection.empty()" 没禁止,只是把它复制的内容,变成空了: oncopy="ret ...
- 不使用return false阻止event默认行为
当我们点击一个a标签时,如果这个标签的href指向了另一个地址,那么浏览器会默认跳转到此地址.在页面中,有时我们需要触发点击事件,但是又不想触发默认行为,就需要阻止event的默认行为了. 常规做法 ...
随机推荐
- 【make install】自定义安装目录,添加动态链接库 【--prefix】 【ldconfig】 【LD_LIBRARY_PATH】
怎么卸载make install安装的软件? https://www.zhihu.com/question/20092756 怎么指定安装目录以及对应的添加动态库的方法 linux库在不指定安装路径时 ...
- LightOj 1265 - Island of Survival(概率)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1265 题目大意:有一个生存游戏,里面t只老虎,d只鹿,还有一个人,每天都要有两个生物碰 ...
- LeetCode Top100 Liked Questions
1. TwoSum https://www.cnblogs.com/zhacai/p/10429120.html easy 2. Add Two Numbers https://www.cnblog ...
- python string 模块
标准库 python3 python2.7 都可以用 sting.ascii_letters是生成所有字母,从a-z和A-Z, string.digits是生成所有数字0-9. import stri ...
- golang 的精髓--pipeline流水线,对现实世界的完美模拟
https://blog.golang.org/pipelines https://www.cnblogs.com/junneyang/p/6215785.html 简介 Go语言的并发原语允许开发者 ...
- 多线程下载文件,ftp文件服务器
1: 多线程下载文件 package com.li.multiplyThread; import org.apache.commons.lang3.exception.ExceptionUtils; ...
- latex中文模板
\documentclass[UTF8,a4paper,10pt, twocolumn]{ctexart} \usepackage[left=2.50cm, right=2.50cm, top=2.5 ...
- postman 安装,对elasticsearch进行请求
1 使用postman对elasticsearch进行测试 :下载插件: https://www.getpostman.com/apps ,下载时exe文件,双击自动安装,首次打开注册.下面就可以使 ...
- Mac下PHP7.1+Nginx安装和配置
https://blog.csdn.net/haiyanggeng/article/details/79186982 PHP:7.1.13Nginx:1.12.2 1. 安装PHP# 添加源brew ...
- PHPExcel 基本用法详解
.header header("Content-Type:application/vnd.ms-excel"); header("Content-Disposition: ...