Chrome / Firefox console.log总是附加一行说明未定义的行

每次执行console.log ,都会在输出日志中附加一行说明undefined的行。

Firefox和Chrome在Windows和Linux上都会出现。

如果您从JS文件运行console.log() ,则不应该添加此undefined行。

如果你从控制台本身运行console.log() ,这是有道理的。 这就是为什么:在控制台中,你可以输入一个变量的名字(例如尝试输入window ),并输出关于它的信息。 当你从控制台运行任何void函数(如console.log)时,它也会打印出关于返回值的信息,在这种情况下是undefined

我在我的Chrome(Mac版本23.0.1271.101)上测试了这两种情况,实际上当我在控制台中运行它时,我看到了undefined行。 当我在控制台写这行时,这个undefined也出现: var bla = "sdfdfs"

虽然谈话的答案没问题,但我试图说得更直截了当:

JavaScript被设计为动态语言,这意味着函数返回值的类型(string,void,boolean …)没有预先定义。 如果函数没有使用返回语句或没有值的空return语句,那么JavaScript会自动返回undefined。 这意味着在JavaScript中,每个函数都会返回一些东西,至少是未定义的。

因此,Chrome控制台中的函数console.log()使用no或者一个空的return语句,所以这个函数的返回值是未定义的。 此功能返回值也会显示在Chrome控制台中。

[如果有人知道在哪里可以找到Google Chrome源代码中console.log()函数的定义,请对该链接进行评论,然后我们甚至可以进一步查看真实的代码,会很好。

资料来源:

如果您使用console.log在一行中发出多个值,这是一个很好的选择:

 var1 + ' ' + var2 + ' ' + var... 

(更好的想法欢迎,在某些情况下这可能会炸毁)