Абсолютно!Существует проект под названием 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, которая использует тот факт, что вы можете смоделировать goto с помеченным while
loop ,Итак, когда вы пишете «Привет, мир!»Программа, приведенная выше, переводится примерно так:
var i = 0;
start: while(true) {
console.log("Hello, world!");
i++;
if(i < 538) continue start;
break;
}
Существуют некоторые ограничения для этого процесса предварительной обработки, поскольку циклы while не могут распространяться на несколько функций или блоков.Это не так уж и сложно - я уверен, что преимущества возможности использования goto
в JavaScript просто ошеломят вас.
Все приведенные выше ссылки, которые ведут в библиотеку goto.js, ВСЕ DEAD, вот ссылки, необходимые:
goto.js (без сжатия) --- parseScripts.js (без сжатия)
с Перейти.js :
PS Для тех, кто интересуется (пока всего ноль человек), Summer of Goto - это термин, который был популяризирован Полом Айришем при обсуждении этого сценария и PHPрешение добавить goto на их язык.
И для тех, кто не сразу понимает, что все это шутка, пожалуйста, прости меня.<- (страховка). </p>