为什么我这个函数return后还会继续运行?

clipboard.png

我检查了一下,代码跑完return后函数没有结束,还在继续执行后面的代码,求解哪里出了问题

阅读 15.1k
10 个回答

实际上你在loop遍历了一个数组,所以你的loop递归分支也不是回到唯一一个。所以你这里需要判断的是是否每一个分支都结束了。

其中一个return了不表示所有都return了,你需要更细的跟踪。

if通过了吗?

在里面console一下看有没有进到条件里面。

if(...){
    console.log(1);
    return;
}

return

console.log('return');
// 确保进来了。

应该是调试器的问题,return 语句执行后是不会向下执行的。建议重启调试器,调试代码运行流程

我看你的函数名,这应该是在循环里的一个函数吧
return只是结束当前循环
如果想直接跳出整个循环,可以用break

你确定你的if语句执行了?

你在if语句上面输出一下你if里面的判断,看它执行了几次,是不是有false,没有进到if里面的情况

唯一的可能就是 if 条件为 false,在 if 语句前面打个debugger看一下实时的判断条件结果吧。

return false; 或者 break;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏