如何在Javascript中使用goto?
2022-08-30 03:03:34
我有一些代码,我绝对必须使用.例如,我想写一个这样的程序:goto
start:
alert("RINSE");
alert("LATHER");
repeat: goto start
有没有办法在Javascript中做到这一点?
我有一些代码,我绝对必须使用.例如,我想写一个这样的程序:goto
start:
alert("RINSE");
alert("LATHER");
repeat: goto start
有没有办法在Javascript中做到这一点?
绝对!有一个名为Summer of Goto的项目,它允许你充分发挥JavaScript的潜力,并将彻底改变你编写代码的方式。
这个JavaScript预处理工具允许您创建一个标签,然后使用以下语法进行处理:
[lbl] <label-name>
goto <label-name>
例如,问题中的示例可以编写如下:
[lbl] start:
alert("LATHER");
alert("RINSE");
[lbl] repeat: goto start;
请注意,您不仅限于简单的琐碎程序,例如无休止的重复周期 - 提供的可能性是无穷无尽的,您甚至可以向JavaScript控制台发送538次消息,如下所示:LATHER
RINSE
goto
Hello, 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: