js实现goto
在 JavaScript 中,原生并不支持 goto 语句,但可以通过其他方式模拟类似的功能。以下是几种常见的方法:
使用标签和循环
通过 label 结合 break 或 continue 语句,可以在循环中实现跳转:

outerLoop: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerLoop; // 跳出外层循环
}
console.log(i, j);
}
}
使用函数和条件控制
通过函数封装逻辑,利用条件判断实现跳转:

function step1() {
console.log('Step 1');
if (someCondition) {
return step3(); // 跳转到 step3
}
step2();
}
function step2() {
console.log('Step 2');
}
function step3() {
console.log('Step 3');
}
step1();
使用生成器函数
生成器函数可以通过 yield 暂停执行,并通过 next() 恢复执行:
function* steps() {
yield console.log('Step 1');
yield console.log('Step 2');
yield console.log('Step 3');
}
const iterator = steps();
iterator.next(); // 执行 Step 1
iterator.next(); // 执行 Step 2
使用异常处理
通过 try-catch 和抛出异常实现跳转:
try {
console.log('Step 1');
throw 'goto_step3';
} catch (e) {
if (e === 'goto_step3') {
console.log('Step 3');
}
}
注意事项
- 滥用跳转逻辑可能导致代码难以维护。
- 优先使用函数和条件控制等结构化方式替代
goto。 - 生成器函数适合需要暂停和恢复的场景。
以上方法可以根据具体需求选择合适的方式模拟 goto 功能。






