这是什么写法?


var obj = {
  test:function(){
    var a=1;
    demo:if (a) {    //这个地方不懂
      var x = 33;
      break demo;
    }
    console.log(x); //33
  }
}
obj.test();
阅读 3.5k
4 个回答

@hsfzxjy 给的参考网址,注意理解下面这句

break 语句包含一个可选的标记(label),可允许程序摆脱一个被标记的语句(labeled statement)。break 语句需要内嵌在引用的 label 中。被标记的语句(labeled statement)可以是任何 块语句;不一定是循环语句。

你这个例子看不出来这里的 break [label] 有啥用,我改了一点,就看得出来了

var obj = {
    test: function() {
        var a = 1;
        demo: if (a) {
                var x = 33;
                break demo;
                x = 44;  // 这句没执行
            }
        console.log(x); //33
    }
}
obj.test();

这是定义label和跳转的写法,为了跳出if定义了一个demo的标签,在ifbreak出去

让写这个代码的人 说出这样写的理由
没有充分的理由 让他 改代码,并跟他说 去看 javascript: good part.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题