为什么每次调用该函数时都会执行“ console.log”,而只执行一次“ return”?

时间:2020-06-01 20:00:12

标签: javascript output execution

function foo() {
  console.log('always');
  return 'once'
}

foo()
foo()
foo()

输出看起来像- 总是 总是 总是 一次

我想知道在执行过程中会发生什么,以便“总是”打印三次,而“一次”打印(返回)一次。

1 个答案:

答案 0 :(得分:4)

原因是JS控制台始终评估最后一个表达式并将其输出打印到控制台。实际上,您的foo()函数在所有3个调用中都返回一个值。这是您对foo()的最后一次调用,将其打印到控制台。要亲自查看,请在代码末尾附加另一个表达式:

function foo(){
  console.log('always');
  return 'once'
}

foo()
foo()
foo()
a = 42

这次您的输出将是

always
always
always
42