每次console.log
执行时,都会undefined
在输出日志中附加一行提示。
在Windows和Linux上的Firefox和Chrome中都会发生这种情况。
每次console.log
执行时,都会undefined
在输出日志中附加一行提示。
在Windows和Linux上的Firefox和Chrome中都会发生这种情况。
console.log()
返回undefined
。
Answers:
如果您是console.log()
从JS文件运行的,则undefined
不应添加此行。
如果您是console.log()
从控制台本身运行的,那么这很有意义。这是为什么:在控制台中,您可以键入变量的名称(例如,尝试键入window
),并打印有关该变量的信息。从控制台运行任何void函数(例如console.log)时,undefined
在这种情况下,它还会打印出有关返回值的信息。
我在Chrome(Mac ver 23.0.1271.101)上测试了这两种情况,的确undefined
在控制台中运行该行时确实看到了。这undefined
时候我写在控制台此行也出现:var bla = "sdfdfs"
尽管talkol的答案还可以,但我还是尝试直截了当:
JavaScript被设计为动态语言,这意味着未预定义函数返回值的类型(字符串,无效值,布尔值…)。如果函数不使用return语句或没有值的空return语句,则JavaScript自动返回undefined。这意味着在JavaScript中,每个函数至少返回未定义的内容。
因此console.log()
,Chrome控制台中的函数使用no或为空的return语句,因此该函数的返回值是不确定的。此函数的返回值也会显示在Chrome控制台中。
[如果有人知道console.log()
在Google Chrome浏览器源代码中可以找到该函数的定义的位置,请用链接发表评论,然后我们甚至可以进一步研究真实的代码,将是不错的选择。]
资料来源:
浏览器中的控制台环境旨在采用程序中的最后一个语句表达式,并对其求值,然后向您显示该值。
赋值表达式的结果是所赋的值。因此,JavaScript引擎只是进行分配,而控制台又执行了一个额外的步骤,即设置我的最后一条语句,然后将其返回给您。这就是为什么它打印2:
在没有返回值的语句中,您会得到未定义的信息。
a=2
返回2而var b=2
什么也不返回呢?(我猜是因为=
是一个操作符返回一个值,但为什么没有做的声明语句一样?)
您可以做的就是简单地创建自己的console.log之类的函数,并在开发人员控制台中进行大量编码时返回以更改此行为。这是开发人员控制台中的示例:
console.log('I hate seeing the next line stating the obvious.')
I hate seeing the next line stating the obvious.
undefined
log = function(l){return l}
function log()
if(1 === 2){console.log('1 is not equal to 2.')}else{log('No Shit Sherlock.')}
"No Shit Sherlock."
undefined
是Chrome开发者工具中console.log()的返回值。如果您在Chrome开发人员工具中执行以下操作,则会得到未定义的结果,即使x的值为3,也会看到未定义的结果。
> let x = 3
> undefined