labeled statement:标签语句

foo: for (var i=0; i< 5; i++) {
  for (var j=0; j<5; j++) {
    
    if ( i == j ) {
      // 跳到 foo 的下一个循环
      // 注意并不是跳到 foo 所在位置继续执行,而是执行 foo 的下一轮循环。
      continue foo;
    }
    
    // 跳过奇数结果
    if ( !!(j % 2) ) {
      // 继续内层循环
      continue;
    }
    
    console.log( i, j );
  }
}

foo: for (var i=0; i<4; i++) {
  for (var j=0; j<4; j++) {
    if ((i*j) >= 2) {
      
      // console.log( 'stopping!', i, j);
      // 跳出标签 foo 所在的循环/代码块,继续执行后面的代码
      break foo;
    }
    
    console.log('inner:', i, j);
  }
  
}

console.log('跳出 foo:', i, j);

// 标签也能用于非循环代码块,但只有 break 才可以!
function foo() {
  baz: {
    console.log('this is a 空代码块。')
  }
  
  bar: {
    console.log('Hello');
    
    break bar;
    console.log('never runs');
  }
  
  console.log('World');
}

foo();

QUESTION:

[] + {};    //  值为?
{} + [];    //  值为?




























ANSWER:
// 出现在+运算符后,被当做一个值(空对象)
[] + {};    //  "[object Object]"
// 被当做空代码块
{} + [];    //  0
原文地址:https://www.cnblogs.com/kuangliu/p/6427592.html