我在Chrome的开发者工具javascript控制台中运行以下代码,
var solution = 1;
for(var i = 1; i <= 12; ++i)
solution *= i;
console.log(solution.toString());
我得到以下输出:
479001600
undefined
当我删除最后一行,即console.log(solution.toString());
时,我只获得了479001600
。会发生什么?
答案 0 :(得分:5)
undefined
只是控制台告诉你声明的方式:
console.log(solution.toString());
本身不返回一个值(它输出一个值,但不返回一个值)。实际代码执行时不必担心,因为它是开发人员控制台的特定行为。
另一个例子是,如果在控制台中键入:5 + 6
,它将在下一个控制台行上报告11
,因为控制台总是要报告从刚刚执行的语句返回的任何值
答案 1 :(得分:1)
Google Chrome中的控制台将始终返回上次执行的语句的值。
由于你在控制台中的最后一个声明是
console.log()
没有返回任何显示'undefined'的值;
尝试
var a=[];a.push(5);
它将在下一行显示1,因为push方法返回新形成的数组的长度