如何在Javascript中使用goto?

2022-08-30 03:03:34

我有一些代码,我绝对必须使用.例如,我想写一个这样的程序:goto

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

有没有办法在Javascript中做到这一点?


答案 1

绝对!有一个名为Summer of Goto的项目,它允许你充分发挥JavaScript的潜力,并将彻底改变你编写代码的方式。

这个JavaScript预处理工具允许您创建一个标签,然后使用以下语法进行处理:

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

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

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

请注意,您不仅限于简单的琐碎程序,例如无休止的重复周期 - 提供的可能性是无穷无尽的,您甚至可以向JavaScript控制台发送538次消息,如下所示:LATHERRINSEgotoHello, world!

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

你可以阅读更多关于如何实现goto的信息,但基本上,它做了一些JavaScript预处理,利用了你可以用一个带标签的while循环模拟goto的事实。所以,当你在上面写“你好,世界!”程序时,它会被翻译成这样:

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

此预处理过程存在一些限制,因为 while 循环不能跨多个函数或块延伸。不过,这没什么大不了的——我敢肯定,能够在 JavaScript 中利用的好处绝对会让你不知所措。goto

以上所有导致goto的链接.js库都是死的,这里是需要的链接:

转到.js(未压缩)--- parseScripts.js(未压缩)

转到.js


答案 2

他们没有在 ECMAScript 中包含这一点:

ECMAScript 没有 goto 语句。