• JavaScript label语句


    使用label 语句可以在代码中添加标签,以便将来使用。

    以下是label 语句的语法:

    label: statement

    下面是一个示例:

    start: for (var i=0; i < count; i++) {
      alert(i);
    }

    这个例子中定义的start 标签可以在将来由break 或continue 语句引用。

    加标签的语句一般都要与for 语句等循环语句配合使用。

    Break

    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

    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。

    虽然联用break、continue和label语句能够执行复杂的操作,但如果使用过度,也会给调试
    带来麻烦。在此,我们建议如果使用label语句,一定要使用描述性的标签,同时不要嵌套过多的循环。

    摘自:《JavaScript高级程序设计(第三版)》

  • 相关阅读:
    架构师速成-怎样高效编程
    【论文笔记】Leveraging Datasets with Varying Annotations for Face Alignment via Deep Regression Network
    Redis数据类型--List
    python命令行传入参数
    python 连接ORacle11g
    sqlserver2016 kb补丁
    linux cat 文件编码
    python gtk 环境
    openstack kvm cannot set up guest memory 'pc.ram': Cannot allocate memory
    Mysql Explain 详解(转)
  • 原文地址:https://www.cnblogs.com/ljwTiey/p/7387838.html
Copyright © 2020-2023  润新知