Nar*_*shi 3 javascript console console.log
看看这个片段:
let first = 1;
function second() {
console.log(2);
}
console.log(first, second()); // 2 1Run Code Online (Sandbox Code Playgroud)
1 2我希望它按顺序打印而不是2 1. 为什么函数second先执行?我观察到,如果两个参数都是console.log函数,则它们传递的顺序将被保留(参见下面的示例)
function first() {
console.log(1);
}
function second() {
console.log(2);
}
console.log(first(), second()); // 1 2Run Code Online (Sandbox Code Playgroud)
请用相关资源解释此行为。
在调用包含参数列表的函数之前,将计算参数列表中的所有参数。所以
someFn(first(), second());
Run Code Online (Sandbox Code Playgroud)
将始终调用first,然后调用second(以及任何其他参数),直到它得出中间值,例如
someFn(firstResultExpression, secondResultExpression);
Run Code Online (Sandbox Code Playgroud)
此时someFn将使用这些(现已解析)表达式进行调用。
在这种情况下,someFn恰好是console.log. 因此,如果自己first()记录second()任何内容,这些日志将始终首先出现,在最后一个someFn开始执行任何操作之前。
| 归档时间: |
|
| 查看次数: |
1381 次 |
| 最近记录: |