为什么这段代码最后打印出`undefined`?

Ali*_*iba 0 javascript

当我在Chrome的开发者工具javascript控制台中运行以下代码时,

var solution = 1;
for(var i = 1; i <= 12; ++i)
    solution *= i;
console.log(solution.toString());
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

479001600
undefined
Run Code Online (Sandbox Code Playgroud)

当我删除最后一行时,就是console.log(solution.toString());我得到了479001600.怎么了?

Sco*_*cus 5

undefined只是控制台告诉你声明的方式:

console.log(solution.toString());
Run Code Online (Sandbox Code Playgroud)

它本身不返回一个值(它输出一个值,但不返回一个值).实际代码执行时不必担心,因为它是开发人员控制台的特定行为.

作为另一个示例,如果您键入:5 + 6进入控制台,它将报告11下一个控制台行,因为控制台始终要报告从刚刚执行的语句返回的任何值.