【发布时间】:2020-11-14 23:19:47
【问题描述】:
我刚刚发现了在JavaScript中使用label,比如:
for (var i in team) {
if(i === "something") {
break doThis: //Goto the label
} else {
doThat();
}
}
doThis: //Label
doIt();
直到现在我还没有听说过这件事,我在网上找不到太多关于它的信息,我开始认为这是有原因的。
在我看来,这类似于其他语言中的 GOTO 语句,并且会被视为不好的做法。我这样假设是对的吗?
【问题讨论】:
-
您对标签的使用不正确:您需要将标签添加到循环构造中,即
doThis: for(... -
也 不使用
hasOwnProperty绝对是不好的做法。见:bonsaiden.github.com/JavaScript-Garden/#hasownproperty -
@IvoWetzel 如果它是一个不继承的对象,那么不使用
hasOwnProperty也可以。Object原型上没有任何东西是可枚举的。
标签: javascript loops label nested-loops break