一、语法为:return 表达式;javascript
二、w3c中的解释:java
语句结束函数执行,返回调用函数,并且把表达式的值做为函数的结果
也就是:当代码执行到return语句时,函数返回一个结果就结束运行了,return后面的语句根本不会执行。浏览器
举个栗子:网络
function myFun() { console.log("Hello"); return "World"; console.log("byebye") } myFun();
上面代码输出“Hello”到控制台,返回“World”,但没有输出“byebye”,由于函数遇到return语句就退出了。 函数
三、return false:post
在大多数状况下,为事件处理函数返回false,能够防止默认的事件行为.例如,默认状况下点击一个<a>元素,页面会跳转到该元素href属性指定的页。学习
js中return false做用通常是用来取消默认动做 / 阻止提交表单 / 阻止继续执行下面的代码。
注意:return false 只在当前函数有效,不会影响其余外部函数的执行。
举个栗子说明:
function a(){ if(True) return false; } 这是没有任何问题的,若是我改为这种 function Test(){ a(); b(); c(); }
即便a函数返回return false 阻止提交了,可是不影响 b()以及 c()函数的执行。在Test()函数里调用a()函数,那面里面this
return false 对于Test()函数来讲,只是至关于返回值。而不能阻止Test()函数执行。spa
return false 返回错误的处理结果,终止处理。 就至关于终止符,
四、return true:.net
return true 返回正确的处理结果,就至关于执行符。
五、return:把控制权返回给页面。
六、关于阻止浏览器执行默认行为
你们对事件冒泡都很熟悉了吧,我想表达的是大部分事件都是先在初始DOM上触发,而后再经过DOM树往上,在每一级父元素上触发,事件不会在兄弟节点或是子节点上冒泡(当事件向下冒泡时,咱们叫它事件捕捉(event capturing)),
“return false”之因此被误用的如此厉害,是由于它看起来像是完成了咱们交给它的工做,浏览器不会再将咱们重定向到href中的连接,表单也不会被继续提交,但这么作到底有什么不对呢?
七、”return false“到底作了什么?
当你每次调用”return false“的时候,它实际上作了3件事情:
•event.preventDefault();
•event.stopPropagation();
•中止回调函数执行并当即返回。
“等等”,你叫了起来!我只是想让浏览器中止继续执行默认行为而已,我不须要它去作另外2件事。
这3件事中用来阻止浏览器继续执行默认行为的只有preventDefault,除非你想要中止事件冒泡,不然使用return false会为你的代码埋下很大的隐患,让咱们经过一个真实的例子来看看这样的误用会形成什么后果:
<div class="post"> <h2><a href="http://jb51.net">My Page</a></h2> <div class="content"> Teaser text... </div> </div> <div class="post"> <h2><a href="http://jb51.net">My Other Page</a></h2> <div class="content"> Teaser text... </div> </div>
如今假设咱们想要在用户点击文章标题时,将文章动态载入到div.contentd中:
jQuery(document).ready(function ($) { $("div.post h2 a").click(function () { var a = $(this), href = a.attr('href'), // Let jQuery normalize `href`, content = a.parent().next(); content.load(href + " #content"); return false; // "cancel" the default behavior of following the link }); });
这段代码能够正常工做(至少目前是),但若是咱们顺着这个思路继续,若是我想要在用户点击了一个div.post元素(或者任何一个它的子元素)时,给它加上一个active类,我就须要给div.post增长了一个click回调:
var posts = $("div.post"); posts.click(function () { posts.removeClass("active"); $(this).addClass("active"); });
如今,若是咱们点击一个帖子的标题,这段代码会工做吗?答案是不会,由于咱们在标题的click回调里使用了return false而不是咱们应该使用的,”return false“等于event.preventDefault();加event.stopPropagation();,因此事件冒泡就被终止了,click事件不会被冒泡到div.post上,咱们为它添加的事件回调固然也就不会被调用了。
那先来了解下什么是preventDefault():
preventDefault()
大多数状况下,当你使用return false时,你其实真正须要的是e.preventDefault()。要使用e.preventDefault,你须要确保你传递了event参数到你的回掉函数中(在这个例子里,就是那个e):
$("a").click(function (e) { // e == our event data e.preventDefault(); });
它会替咱们完成全部工做,但不会阻止父节点继续处理事件,要记住,你放在代码中的限制越少,你的代码就越灵活,也就越易于维护。
stopPropagation()
定义:再也不派发事件。
终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件再也不被分派到其余节点。
该方法将中止事件的传播,阻止它被分派到其余 Document 节点。注意,虽然该方法不能阻止同一个 Document 节点上的其余事件句柄被调用,可是它能够阻止把事件分派到其余节点。
八、何时用 return false?
只有当你同时须要preventDefault和stopPropagation,而且你的代码能够接受直到你的回调执行完成才中止执行浏览器的默认行为,那你就可使用”return false“。
return :
continue :
终止本次循环的执行,即跳过当前此次循环中continue语句后还没有执行的语句,接着进行下一次循环条件的判断。
它不是退出一个循环,而是开始循环的一次新迭代。
continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其它地方使用都会引发错误!
举个栗子:
for(var i=1;i<=10;i++) { if(i==8) { continue; } document.write(i); } //当i=8的时候,直接跳出本次for循环。下次继续执行。 //输出结果:1234567910
break :
1 for(var i=1;i<=10;i++) { 2 if(i==8) { 3 break; 4 } 5 document.write(i); 6 } 7 8 //当i=8的时候,直接退出for这个循环。这个循环将再也不被执行! 9 //输出结果:1234567
部分资料来源于网络,仅供学习参考,侵权删
资料来源:http://blog.csdn.net/holandstone/article/details/7613261
http://www.jb51.net/article/74959.htm
http://www.jb51.net/article/42711.htm