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关键字和标签之间__不许可换行__。