定义
标签语句用于给语句加标签,语法:label: statement
eg:
start: for (let = 0; i < 5; i++) {
console.log(i)
}
在这个例子中,start是一个标签,可以在后面通过break或者continue语句来引用
使用
观察下面的打印
let num = 0;
for(let i = 0; i<10; i++) {
for(let j = 0; j < 10; j++) {
if (i === 5 && j === 5){
break;
}
num++
}
}
console.log(num) // 95
还有下面这个打印
let num = 0;
outerMost: for(let i = 0; i<10; i++) {
for(let j = 0; j < 10; j++) {
if (i === 5 && j === 5){
break outerMost
}
num++
}
}
console.log(num) // 55
出现上面的区别是为什么呢?
主要就是标签语句的原因,原本break是会终止当前循环,其实也就是第一个例子,只会终止五次,但是由于加上了标签语句,代表循环终止到标签,所以就直接少执行了一半,也就是55
再看下面continue的例子
let num = 0;
for(let i = 0; i<10; i++) {
for(let j = 0; j < 10; j++) {
if (i === 5 && j === 5){
continue
}
num++
}
}
console.log(num) // 99
只会跳出循环一次,也就是少执行1次
let num = 0;
outerMost: for(let i = 0; i<10; i++) {
for(let j = 0; j < 10; j++) {
if (i === 5 && j === 5){
continue outerMost
}
num++
}
}
console.log(num) // 95
标签语句,跳出去一次后继续执行