为何这段JavaScript代码的输出结果为4?
为什么这段JavaScript代码输出4?
先看你的代码:
function func1() { return 2; } function func2() { return 4; } let a = (func1(), func2()); console.log(a)
核心原因是这里用到了JavaScript的逗号运算符,它的规则很直接:
- 按顺序执行逗号分隔的每一个表达式
- 整个逗号表达式的最终结果,是最后一个表达式的返回值
放到你的代码里具体分析:
- 括号里的
func1(), func2()会先执行func1(),虽然它返回了2,但这个值会被直接丢弃 - 接着执行
func2(),它返回的4会作为整个逗号表达式的结果,赋值给变量a - 最后
console.log(a)自然就输出4了
你可以试试把代码改成let a = (func2(), func1());,输出就会变成2,这样能更直观验证这个逻辑。
内容的提问来源于stack exchange,提问作者Benny Khatri
相关产品推荐
相关产品推荐

