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

JavaScript函数返回值疑问:为何执行代码后输出为3而非1,2,3?

为什么你的JavaScript代码返回最后一个元素而非多个值?

嘿,这事儿其实是JavaScript里逗号运算符的特性在搞怪,我给你拆解明白:

首先先提个小细节——你代码里写的是return (1,2,4);,运行后输出应该是4而不是你说的3,估计是手滑打错啦,但核心问题的逻辑是一致的。

逗号运算符的作用

JavaScript里的逗号运算符,有个明确的行为:它会从左到右依次执行每个逗号分隔的表达式,最终只返回最后一个表达式的结果。

放到你的代码里看:

function rrr() { return (1,2,4); }

括号里的(1,2,4)是一个用逗号运算符连接的表达式链:

  1. 先计算第一个表达式1,但这个结果会被丢弃;
  2. 接着计算第二个表达式2,结果同样被丢弃;
  3. 最后计算第三个表达式4,这个结果会作为整个逗号表达式的返回值,也就是函数rrr的返回值。

所以n = rrr()之后,n的值就是4,console.log(n)自然输出最后这个值。

怎么返回多个值?

如果你想返回多个值,得用数组或者对象来包裹,比如:

  • 返回数组:
function rrr() { return [1,2,4]; }
const n = rrr();
console.log(n); // 输出 [1,2,4]
  • 返回对象(适合需要给值命名的场景):
function rrr() { return {a:1, b:2, c:4}; }
const n = rrr();
console.log(n.a, n.b, n.c); // 输出 1 2 4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 13:33:10