You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中return的作用是什么?为何有无return结果不同

JavaScript中return关键字作用及跳跃游戏代码差异原因

return关键字的核心作用

在JavaScript函数中,return的作用只有两点:

  • 立即终止当前函数的全部执行流程,return语句之后的所有代码都不会被执行
  • 将return后跟随的表达式结果,作为当前函数的返回值,传递给调用函数的位置
    如果函数从头到尾没有执行到任何return语句,默认会返回undefined。

两段canJump代码的结果差异原因

两段跳跃游戏实现的逻辑差异,完全来自if分支里是否加了return:

可正常判题通过的代码

function canJump(nums){
  let reachable = 0;
  
  for(let i=0; i < nums.length; i++){
    if(reachable < i) return false;
    reachable = Math.max(reachable, i + nums[i]);
  }
  return true;
}

这段代码逻辑符合预期:遍历数组时维护当前能跳到的最远下标reachable,一旦发现当前遍历到的下标i已经超过了可达范围,说明根本到不了i位置,更不可能抵达数组末尾,此时执行return false会立刻终止函数运行,直接返回错误结果。只有遍历完所有下标都没触发不可达条件,才会走到最后返回true。

无法通过判题的错误代码

function canJump(nums){
  let reachable = 0;
  
  for(let i=0; i < nums.length; i++){
    if(reachable < i) false;
    reachable = Math.max(reachable, i + nums[i]);
  }
  return true;
}

这段代码里if分支只单独写了一个false字面量,属于完全无效的代码:它确实会被求值得到布尔值false,但既没有把这个值存储到变量,也没有通过return终止函数、向外传递结果。哪怕已经触发了「当前位置不可达」的失败条件,循环还是会继续执行,等整个循环跑完,不管中间有没有出现不可达的情况,都会直接执行最后一行的return true,永远返回true,结果自然不符合预期。

拿典型测试用例[3,2,1,0,4]举例:正确代码遍历到下标4时,能跳到的最远距离只有3,会立刻返回false;错误代码碰到这个场景只会空跑一行无效的false表达式,循环结束后照样返回true,判题自然无法通过。


内容的提问来源于stack exchange,提问作者22h2l

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 10:24:17