为什么函数首先在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开始执行任何操作之前。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么 main 函数首先在 c/c++ 中运行?

为什么首先在C ++中初始化成员类?

为什么总是首先在 NestJS 中调用带有查询参数的 getter?

为什么超类首先在该程序中执行-尽管我没有main方法?

哪个函数将首先在angularjs指令中执行?链接还是控制器?

哪个文件首先在pytest中执行?

在Ionic 2 App中首先在构造函数之前加载模板

首先在mysqli中显示较新的数据

首先在设备上的iOS 9中与NSURLConnection连接

如何首先在Wicket中呈现<meta>标签?

首先在路由表中插入忽略的路由

首先在javascript中显示已加载的元素

替换所有捕获的组,但首先在 sed 中

首先在子级子级中添加儿童

首先在Entity Framework代码中链接子表

首先在EF代码中删除列

首先在nodejs winston logger中编写时间戳

如何从首先在php中重新启动循环

之后首先在Firebase云功能中执行代码

如何首先在Node.js中执行所有控制台日志?

为什么在javascript中首先执行回调函数?

C ++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)

For循环的迭代继续进行,而不是等待`async.parallel`首先在NodeJS中完成其执行。

仅在用户首先在输入中键入“ x”时才执行操作

如何首先在 UI 中显示 JSON 对象中的最后一个属性

首先在实体框架代码中初始化数据库中的对象

如何在Windows 10中更改homepath变量以首先在cmd中查看目录

更新模型数据:首先在服务器中还是在客户端中?

首先在实体框架代码中为同一表定义多个外键