这怎么不是语法错误呢?这毫无意义!(javascript)

这怎么不是语法错误呢?这毫无意义!(javascript),javascript,Javascript,作业的右边可以有语句吗 thing: 123123 thing: "asdfasdf" thing: {asdf:1234} thing: (function () { return 1 })() parent: for (var i=0; i<10; i++) { var a = 0 console.log(a) child: while(a < 5) { a++ if (a > 2) break parent } }

作业的右边可以有语句吗

thing: 123123

thing: "asdfasdf"

thing: {asdf:1234}

thing: (function () {
 return 1
})()

parent: for (var i=0; i<10; i++) {
  var a = 0
  console.log(a)
  child: while(a < 5) {
    a++
    if (a > 2)
      break parent
  }
}

您正在使用标签,而不是指定

i = 0;
a: while(i < 2) {
       j = 0;
       i = (i || 0) +1;
       console.log('hi');
       while(j < 2) {
           j++;
           console.log("there");
           if (i < 1) continue a;
           console.log("hello");
       }
}

另请参见:

您使用的是标签,而不是作业

i = 0;
a: while(i < 2) {
       j = 0;
       i = (i || 0) +1;
       console.log('hi');
       while(j < 2) {
           j++;
           console.log("there");
           if (i < 1) continue a;
           console.log("hello");
       }
}
另请参见:thing:和parent:不是作业。它们是一些标签,有点像GOTOs的目标,通常只有在处理嵌套循环并希望在其中一个特定循环上中断或继续时才有用

事情:和家长:都不是作业。它们是一些标签,有点像GOTOs的目标,通常只有在处理嵌套循环并希望在其中一个特定循环上中断或继续时才有用


因此,对于为什么会这样,您有很好的答案-它们是标签-但是如果您想将它们像赋值一样,您只能将它们包装在对象中:

var myClass = {
  thing1: 123123,
  thing2: "asdfasdf",
  thing3: {asdf:1234},
  thing4: function () {
    return 1
  },
  parent: function() {
      for (var i=0; i<10; i++) {
        var a = 0
        child: while(a < 5) {
        a++
        console.log(a)
        if (a > 2)
          break
      }
    }
  }
};

console.log(myClass.thing1);
console.log(myClass.thing2);
console.log(myClass.thing3['asdf']);
console.log(myClass.thing4());

myClass.parent();
你可以在这里玩:

因此,对于为什么会这样,您有很好的答案-它们是标签-但是如果您想将它们像赋值一样,您只能将它们包装在对象中:

var myClass = {
  thing1: 123123,
  thing2: "asdfasdf",
  thing3: {asdf:1234},
  thing4: function () {
    return 1
  },
  parent: function() {
      for (var i=0; i<10; i++) {
        var a = 0
        child: while(a < 5) {
        a++
        console.log(a)
        if (a > 2)
          break
      }
    }
  }
};

console.log(myClass.thing1);
console.log(myClass.thing2);
console.log(myClass.thing3['asdf']);
console.log(myClass.thing4());

myClass.parent();
你可以在这里玩:

不,他不是,这些根本不是属性,它们是Gotos的标签不,他不是,这些根本不是属性,它们是Gotos的标签goto来自哪里?ECMA262说没有goto声明。它在ECMAScript 6或7中是新的吗?对不起,忘记了,goto不是一个语句。您可以将continue与标签一起使用,这使得它的行为类似于goto goto来自何处?ECMA262说没有goto声明。它在ECMAScript 6或7中是新的吗?对不起,忘记了,goto不是一个语句。您可以将continue与标签一起使用,使其行为类似于goto