javascript - 为什么函数在console.log中先执行?

标签 javascript console console.log

看看这个片段:

let first = 1;

function second() {
  console.log(2);
}

console.log(first, second()); // 2 1

我希望它按顺序打印 1 2 而不是 2 1。为什么函数 second 先执行? 我观察 console.log 的两个参数是否都是函数,它们传递的顺序被保留(见下面的例子)

function first() {
  console.log(1);
}

function second() {
  console.log(2);
}

console.log(first(), second()); // 1 2

请使用相关资源解释此行为。

最佳答案

在调用包含参数列表的函数之前评估参数列表中的所有参数。所以

someFn(first(), second());

总是调用first , 然后调用 second (连同任何其他参数),直到它得出像

这样的中间值
someFn(firstResultExpression, secondResultExpression);

此时someFn将使用那些(现已解析的)表达式调用。

在这种情况下,someFn恰好是 console.log .所以如果first()second()自己记录任何内容,这些日志将始终出现在最后一个 someFn 之前。开始做任何事情。

关于javascript - 为什么函数在console.log中先执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58217899/

相关文章:

java - 如何在 Java 中使用 System.out.println 在控制台中打印突出显示的彩色文本

console - 如何清除 IronPython 控制台中的屏幕?

windows - 巴布恩 : copy/paste from windows clipboard into vim?

javascript - 如何以编程方式打开浏览器的 JavaScript 控制台?

javascript - 在最近的 Google Chrome 中访问错误对象 (43.0.2357.65 m)

javascript - 如何替换给定字符串前后除 100 个字符以外的所有内容?

javascript - Js (+Mootools) - 为什么我的脚本使用超过 60% 的处理器?

javascript - 使用 Javascript 调整 Ruby-on-Rails 中模式对话框中的滚动条

javascript - 如何在 ExtJs 中启用 console.log

javascript - 在同一窗口和同一选项卡中打开 URL