2017-07-19 69 views
0

当我运行下面这段代码在Chrome的开发者工具JavaScript控制台,为什么这段代码最后打印'undefined`?

var solution = 1; 
for(var i = 1; i <= 12; ++i) 
    solution *= i; 
console.log(solution.toString()); 

我得到以下输出:

479001600 
undefined 

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

+0

那是因为你运行该代码不返回任何内容的长度....必须有一个愚蠢的做法。 – epascarello

+2

控制台记录您输入的任何内容的最后返回值。 'console.log'“返回”'undefined',这就是你所看到的。没有它,记录最后一个'解* * i',显示你想要的结果。 –

+0

@NiettheDarkAbsol就是如此。谢谢你的帮助。 –

回答

5

undefined仅仅是告诉你该语句的控制台的方式:

console.log(solution.toString()); 

本身不,返回一个值(它输出的值,但不会返回一个)。当您的实际代码执行时,并不需要担心,因为这对开发人员控制台而言是特定的行为。作为另一个例子,如果您在控制台中键入:5 + 6,它将在下一个控制台行上报告11,因为控制台始终要报告刚刚执行的语句返回的任何值。

1

谷歌浏览器中的控制台将始终返回最后执行的语句的值。

由于您在控制台中最后一条语句是

console.log() 

其中一个没有回到它显示“未定义”的任何值;

尝试

var a=[];a.push(5); 

它会显示1下一行作为push方法返回新组成的阵列