JavaScript的标签

JavaScript的标签

学了那么久用了那么久的JavaScript,也是第一次听说有标签这么个东西,也许是以前粗略学习的时候,一带而过吧。上w3cschool上看了下,JavaScript的标签指的是:

对JavaScript代码块进行标记
如需标记 JavaScript 语句,请在语句之前加上冒号:

label:
语句

然而好像并没有什么帮助,继续看看。

break 和 continue 语句仅仅是能够跳出代码块的语句。


break labelname;

continue labelname;

continue 语句(带有或不带标签引用)只能用在循环中。

break 语句(不带标签引用),只能用在循环或 switch 中。

通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:


    cars=["BMW","Volvo","Saab","Ford"];
    list:{
        document.write(cars[0] + "<br>");
        document.write(cars[1] + "<br>");
        document.write(cars[2] + "<br>");
        break list;
        document.write(cars[3] + "<br>");
        document.write(cars[4] + "<br>");
        document.write(cars[5] + "<br>");
    }

看到这里也是脑门一热,break居然还能这么用,于是忍不住多写了几个列子:

测试


    cars=["BMW","Volvo","Saab","Ford"];
    list:{
        document.write(cars[0] + "<br>");
        document.write(cars[1] + "<br>");
        document.write(cars[2] + "<br>");
        (function(){
            break list;
        })()
        document.write(cars[3] + "<br>");
        document.write(cars[4] + "<br>");
        document.write(cars[5] + "<br>");
    }

输出:
Uncaught SyntaxError: Undefined label 'list'

好吧,我想多了,代码块的标签的作用域似乎只局限于该代码块,内部的代码块都不行。。。跟变量的作用域差异还是很大。


    test: for(var i = 0; i < 10; ++i) {
        for(var j = 10; j < 20; ++j)
           break test;
        console.log(i)
    }

以上代码不会有输出。switch、while、for和do语句允许一个前置的标签。
另外,需要注意的是,break关键字和标签之间__不允许换行__。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值