return

定义

return,从字面意思来看就是返回,官方定义return语句将终止当前函数并返回当前函数的值。一个函数被执行过后,整个函数体被赋值为函数的返回值。

写法

官方定义return后面可以跟一个value,也就是说可以跟javascript中的任何数据类型,数字,字符串,对象等,当然也可再返回一个函数。

练习1

既然return可以返回任何东西,其实也就可以返回它本身。

var i=1;      //定义循环变量
function func1(){
    i++;       //改变循环变量
    if(i<5){        //小括号为循环条件
        console.log(i)
        return func1();
    }
}
func1();
返回函数本身

可以看到,return其实在函数中的作用就是终止函数运行并且返回值

练习2

function(a,b)=> {

alert(a*b);

}
function(a,b) => {

return a*b;

}
  • 上面的第一个代码块中,表示函数输出a*b
  • 第二个代码块中,表示函数返回a*b
  • 看似没啥区别,但是,明显用return更为灵活。
    第一个函数只能弹窗显示a*b
    但是第二个函数直接返回a*b,表示整个函数被赋值了a*b的值。我在函数外调用函数其实就是调用a*b本身。
  • 假如此时我要console.log(a*b)。第一个函数还需在函数本身添加console.log(a*b)。但是,第二个函数可以直接console.log(第二个函数)

return ,return true,return false

<!DOCTYPE html>
<html>
<head>
    <title>return测试</title>
</head>
<body>
<a href="#"></a>
<a onclick="fun1()">111</a>
<a onclick="fun2()">222</a>
<a onclick="fun3()">333</a>
<a onclick="fun4()">444</a>

<script type="text/javascript">
    function fun1() { return ;
        console.log('111 这个不会执行')
    } 
    function fun2() { return false;
        console.log('222 这个不会执行')
    } 
    function fun3() { return true ;
        console.log('333 这个不会执行')
    } 
    function fun4() {
        console.log('444 这个会执行')
    } 
</script>
</body>
</html>

通过上面的例子 可以看出 return ; return false return true 在函数内部都中断了函数的执行
因为函数执行是自上而下的。函数会先 执行 return,return true ,return false。如果此时把returnconsole.log('111 这个不会执行')上下位置对调,发现console.log被执行了。
所以我们可以得到:

  • return ; return false ; return true 都会在函数内部阻止程序的执行。
  • 但是在表单提交中,只有 return false 会阻止表单的提交。return ,return true,都可以把表单提交。
    再来看一个例子:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <a href="https://www.baidu.com" id="www">百度</a>
    <script>
    var a = document.getElementById('www')
    a.onclick = function () {
        return true/false
    }
    </script>
</body>
</html>
  • return false的时候,无法跳转。
  • return return false的时候,会跳转。

return、continue、break 、break的区别

return

-   return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
-   return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
-   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

  • break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句
  • 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
 for(var i=1;i<=10;i++) { 
      if(i==8) { 
          break; 
      } 
      document.write(i); 
  } 
  
  //当i=8的时候,直接退出for这个循环。这个循环将不再被执行!
  //输出结果:1234567

其他

  • return ;后面不接什么东西。当你需要中止函数往下执,可以用这个。
  • retrun true; 返回正确的处理结果。
  • return false;作用一般是用来取消默认动作 / 阻止提交表单 / 阻止继续执行下面的代码。return false 只在当前函数有效,不会影响其他外部函数的执行。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容