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]"
// 被当做空代码块
{} + []; //