定义
标签语句用于给语句加标签,语法: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
标签语句,跳出去一次后继续执行
