这个javascript语法/模式是什么意思?

时间:2014-05-19 07:51:50

标签: javascript syntax

我在代码中看到了这种模式,并且我试图了解其背后的想法

foo : {
    //some code here
    console.log('1');
}

foo是一些html节点,console.log代表一些代码。我看到console.log总是执行,我认为没有理由使用这种模式而不只是直接编写console.log。

如果我在未定义的变量上使用它,你也可以看到它有效。

this_does_not_exists : {
    console.log(2);
}

有人使用这种模式的原因是什么?

1 个答案:

答案 0 :(得分:3)

这是一个label,与变量无关。这些通常仅在您希望whilefor来自最内层的breakcontinue时处理时才有用。

来自MDN的示例:

loop1:
for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
   loop2:
   for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
      if (i == 1 && j == 1) {
         continue loop1;
      }
      console.log("i = " + i + ", j = " + j);
   }
}

在这个例子中,代码是从内循环中continue外循环。