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

含console.log()的函数作为console.log参数时的执行顺序疑问

为什么console.log('hello', fun())的输出顺序和预期不符?

这是JavaScript的参数求值规则导致的:

  • 调用console.log('hello', fun())时,JS引擎会先把console.log的所有参数计算完成,才会执行console.log自身的输出逻辑。
  • 所以第一步会优先执行fun():函数内部的console.log(m)直接输出5,随后函数返回'hi'。
  • 等两个参数('hello'和fun()的返回值'hi')都准备完毕后,console.log才会把这两个值一起输出,最终就出现了5、'hello'、'hi'的顺序。

如果想要得到预期的hello、5、'hi'输出顺序,拆分调用即可:

console.log('hello');
console.log(fun());

这样会先执行第一个console.log输出hello,再执行fun()输出5,最后第二个console.log输出fun()返回的hi。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:32:36