【问题标题】:How to use goto in javascript?如何在javascript中使用goto?
【发布时间】:2015-06-24 02:27:37
【问题描述】:

我从这里得到参考“How can I use goto in Javascript?

我理解下面的代码

[lbl] first:
alert("Test")
goto first;

然而。为什么下面的代码对我不起作用

goto end;
alert("skipped line");
[lbl] end:

当我运行上述命令时,我会收到类似这样的错误

【问题讨论】:

  • 因为end 不是标签。 JavaScript 中的标签具有 label: statement 的形式(假设预处理工具可能能够处理这种情况,但显然它不能)。
  • [lbl] end: ; 可能会起作用。 end: 是标签,; 是空语句。
  • 对不起,我打错字了。我更新我的问题
  • 嗯,这里明显的评论是从一开始就永远不要使用goto。许多人认为它是一种邪恶的构造。相反,使用条件、循环、函数、方法和返回语句来构建您的流程。
  • 我还是不明白什么邪恶? :v

标签: javascript goto


【解决方案1】:

Labels are for loops and blocks.

循环使用:

var allPass = true
top:
for(var i=0; i < items.length; ++i)
    for(var j=0; j < tests.length; ++j)
        if(!tests[j].pass(items[i])){
            allPass = false
            break top
        }

您也可以使用continue label

块使用情况:

foo: {
    console.log("face")
    break foo
    console.log("this will not be executed")
}
console.log("swap")

非严格、非生成器、函数用法:

L: function F(){}

【讨论】:

    猜你喜欢
    • 2012-04-02
    • 1970-01-01
    • 2021-07-02
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    相关资源
    最近更新 更多