JS-Label

标签(label),相当于定位符,用于跳转到程序的任意位置。

  1. 配合break

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    top:  // Label
    for (var i = 0; i < 3; i++){
    for (var j = 0; j < 3; j++){
    if (i === 1 && j === 1) break top; // 注意,不加引号
    console.log('i=' + i + ', j=' + j);
    }
    }
    // i=0, j=0
    // i=0, j=1
    // i=0, j=2
    // i=1, j=0
    如果满足if,直接跳出双重循环。
  2. 配合continue

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    top:
    for (var i = 0; i < 3; i++){
    for (var j = 0; j < 3; j++){
    if (i === 1 && j === 1) continue top;
    console.log('i=' + i + ', j=' + j);
    }
    }
    // i=0, j=0
    // i=0, j=1
    // i=0, j=2
    // i=1, j=0
    // i=2, j=0
    // i=2, j=1
    // i=2, j=2

    当i=1,j=1时,跳过打印(当前内层循环)直接进行下一个外层循环(不会跳出top)

  3. label用于跳出代码块

    1
    2
    3
    4
    5
    6
    7
    8
    foo: {
    console.log(1);
    break foo;
    console.log('本行不会输出');
    }
    console.log(2);
    // 1
    // 2

    ref: 阮一峰