资讯专栏INFORMATION COLUMN

《javascript高级程序设计》笔记:continue / break 和 return

SexySix / 701人阅读

摘要:因为阻止了默认行为的几个常见用法取消默认行为参照上例链式编程闭包之后章节详细讲解和语句和语句用于在循环中精确地控制代码的执行。其中,语句会立即退出循环,强制继续执行循环后面的语句。只能结束循环中的一次过程但不能终止循环继续进行。

return 语句

return语句的几个特点:
(1)return语句应用范围只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误
(2)return语句就是用于指定函数返回的值
(3)return false 能够阻止提交表单或者继续执行下面的代码,通俗的来说就是阻止执行默认的行为

return的例子1:

function returnFn() {
    for(var i = 0; i < 10; i++) {
        if(i == 5) {
            return i;
        }
        console.log(i);
    }
}
console.log("===", returnFn());
// 0 1 2 3 4 === 5

return 的例子2:

点击

单击超链接后会跳转到新浪而不会跳转到百度,如果没有renturn false 则会跳转到百度。因为return false;阻止了默认行为

return 的几个常见用法:
(1)取消默认行为(参照上例)
(2)链式编程

var a = {
    b: function(bb) {
        console.log(bb)
        return this;
    },
    c: function(cc) {
        console.log(cc)
        return this;
    },
    d: function(dd) {
        console.log(dd)
        return this;
    }
}
a.b(1).c(2).d(3);
// 1
// 2
// 3
// Object {}

(3)闭包(之后章节详细讲解)

continue 和 break 语句

break 和 continue 语句用于在循环中精确地控制代码的执行。其中,break 语句会立即退出循环,强制继续执行循环后面的语句。而 continue 语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行

break的例子:

function breakFn() {
    for(var i = 0; i < 10; i++) {
        if(i == 5) {
            break;
        }
        console.log(i);
    }
}
breakFn();
// 0 1 2 3 4

break: 直接跳出 当前 的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。它只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。

continue的例子:

function continueFn() {
    for(var i = 0; i < 10; i++) {
        if(i == 5) {
            continue;
        }
        console.log(i);
    }
}
continueFn();
// 0 1 2 3 4 6 7 8 9

continue: 终止当前的一次循环过程,其不跳出循环,而是继续往下判断循环条件执行语句。只能结束循环中的一次过程,但不能终止循环继续进行。

continue break 与 label

break 和 continue 语句都可以与 label 语句联合使用,从而返回代码中特定的位置。这种联合 使用的情况多发生在循环嵌套的情况下

break + label 的例子:

var num = 0;
outermost:
for (var i=0; i < 10; i++) {
     for (var j=0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break outermost;
        }
num++; }
}
alert(num);    //55

在这个例子中,outermost 标签表示外部的 for 语句。如果每个循环正常执行 10 次,则 num++ 语句就会正常执行 100 次。换句话说,如果两个循环都自然结束,num 的值应该是 100。但内部循环中 的 break 语句带了一个参数:要返回到的标签。添加这个标签的结果将导致 break 语句不仅会退出内 部的 for 语句(即使用变量 j 的循环),而且也会退出外部的 for 语句(即使用变量 i 的循环)。为此, 当变量 i 和 j 都等于 5 时,num 的值正好是 55

continue + label 的例子:

var num = 0;
outermost:
for (var i=0; i < 10; i++) {
    for (var j=0; j < 10; j++) { 
        if (i == 5 && j == 5) { 
            continue outermost;
        }
        num++; 
    }
}
alert(num);    //95

在这种情况下,continue 语句会强制继续执行循环——退出内部循环,执行外部循环。当 j 是 5 时,continue 语句执行,而这也就意味着内部循环少执行了 5 次,因此 num 的结果是 95

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87144.html

相关文章

  • JavaScript高级程序设计》读书笔记

    摘要:为了每个对象都能通过来检测,需要以或者的形式来调用,传递要检查的对象作为第一个参数,称为。对象都是动态的,这就意味着每次访问对象,都会运行一次查询。是语言中立的用于访问和操作和文档。 一、第三章 基本概念: 1.理解参数 1.1 可以向函数中传递任意数量的参数,并且可以通过arguments对象来访问这些参数。 1.2 arguments对象只是类似数组,它通过length来确定传进来...

    dayday_up 评论0 收藏0
  • 读书笔记(06) - 语法基础 - JavaScript高级程序设计

    摘要:写在开头本篇是小红书笔记的第六篇,也许你会奇怪第六篇笔记才写语法基础,笔者是不是穿越了。可移步笔者的文章中替换方式参考文档高级程序设计作者以乐之名本文原创,有不当的地方欢迎指出。 showImg(https://segmentfault.com/img/bVblGMc?w=600&h=400); 写在开头 本篇是小红书笔记的第六篇,也许你会奇怪第六篇笔记才写语法基础,笔者是不是穿越了。...

    iOS122 评论0 收藏0
  • 重学前端学习笔记(二十)--try里面放return,finally还会执行吗?

    摘要:二类型执行了但是没有立即返回,而是先执行了中的覆盖了中的。普通语句执行后,会得到为的,引擎遇到这样的,会继续执行下一条语句。控制类语句分成两部分对其内部造成影响如。 笔记说明 重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专栏学习【原文有wint...

    tolerious 评论0 收藏0
  • 重学前端学习笔记(二十)--try里面放return,finally还会执行吗?

    摘要:二类型执行了但是没有立即返回,而是先执行了中的覆盖了中的。普通语句执行后,会得到为的,引擎遇到这样的,会继续执行下一条语句。控制类语句分成两部分对其内部造成影响如。 笔记说明 重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专栏学习【原文有wint...

    stonezhu 评论0 收藏0

发表评论

0条评论

SexySix

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<