定义

标签语句用于给语句加标签,语法:
label: statement
eg:

  1. start: for (let = 0; i < 5; i++) {
  2. console.log(i)
  3. }

在这个例子中,start是一个标签,可以在后面通过break或者continue语句来引用

使用

观察下面的打印

  1. let num = 0;
  2. for(let i = 0; i<10; i++) {
  3. for(let j = 0; j < 10; j++) {
  4. if (i === 5 && j === 5){
  5. break;
  6. }
  7. num++
  8. }
  9. }
  10. console.log(num) // 95

还有下面这个打印

  1. let num = 0;
  2. outerMost: for(let i = 0; i<10; i++) {
  3. for(let j = 0; j < 10; j++) {
  4. if (i === 5 && j === 5){
  5. break outerMost
  6. }
  7. num++
  8. }
  9. }
  10. console.log(num) // 55

出现上面的区别是为什么呢?
主要就是标签语句的原因,原本break是会终止当前循环,其实也就是第一个例子,只会终止五次,但是由于加上了标签语句,代表循环终止到标签,所以就直接少执行了一半,也就是55

再看下面continue的例子

  1. let num = 0;
  2. for(let i = 0; i<10; i++) {
  3. for(let j = 0; j < 10; j++) {
  4. if (i === 5 && j === 5){
  5. continue
  6. }
  7. num++
  8. }
  9. }
  10. console.log(num) // 99

只会跳出循环一次,也就是少执行1次

  1. let num = 0;
  2. outerMost: for(let i = 0; i<10; i++) {
  3. for(let j = 0; j < 10; j++) {
  4. if (i === 5 && j === 5){
  5. continue outerMost
  6. }
  7. num++
  8. }
  9. }
  10. console.log(num) // 95

标签语句,跳出去一次后继续执行