小编典典

如何在Javascript中使用goto?

javascript

我有一些绝对必须使用实现的代码goto。例如,我要编写这样的程序:

start:
alert("RINSE");
alert("LATHER");
repeat: goto start

有没有办法用Javascript做到这一点?


阅读 3033

收藏
2020-05-01

共1个答案

小编典典

绝对!有一个名为Summer of Goto的项目,它使您可以最大程度地使用JavaScript,并将彻底改变您编写代码的方式。

这个JavaScript预处理工具可让您创建标签,然后使用以下语法转到标签:

[lbl] <label-name>
goto <label-name>

例如,问题中的示例可以编写如下:

[lbl] start:
alert("LATHER");
alert("RINSE");
[lbl] repeat: goto start;

请注意,您不仅限于无穷无尽的LATHER``RINSE重复循环这样的简单程序,它所提供的可能性goto是无限的,您甚至可以Hello,world!向JavaScript控制台发送一条消息538次,如下所示:

var i = 0;
[lbl] start:
console.log("Hello, world!");
i++;
if(i < 538) goto start;

您可以阅读有关goto的实现方式的更多信息,但基本上,它会执行一些JavaScript预处理,这利用了您可以使用带标签的whileloop模拟goto的事实。因此,当您撰写“你好,世界!”
上面的程序,它被翻译成这样的东西:

var i = 0;
start: while(true) {
  console.log("Hello, world!");
  i++;
  if(i < 538) continue start;
  break;
}

此预处理过程存在一些限制,因为while循环无法跨越多个功能或块。不过,这没什么大不了的-
我相信能够利用gotoJavaScript的好处绝对会让您不知所措。

PS对于任何想知道的人(到目前为止共有零个人),SummerofGoto是PaulIrish推广的一个术语,同时讨论了该脚本以及PHP决定将goto添加到他们的语言中的决定。

对于那些没有立即意识到整件事是在开玩笑的人,请原谅我。<—(保险)。

2020-05-01