Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome/Firefox console.log总是在后面加一行,写着';未定义';_Javascript_Debugging_Logging_Console - Fatal编程技术网

Javascript Chrome/Firefox console.log总是在后面加一行,写着';未定义';

Javascript Chrome/Firefox console.log总是在后面加一行,写着';未定义';,javascript,debugging,logging,console,Javascript,Debugging,Logging,Console,每次执行console.log时,输出日志中都会追加一行内容undefined 它在Windows和Linux上的Firefox和Chrome中都会发生。如果您正在从JS文件运行console.log(),则不应附加此未定义的行 如果您正在从控制台本身运行console.log(),这是有意义的。这就是为什么:在控制台中,您可以键入变量的名称(例如,尝试键入window),它会打印有关该变量的信息。当您从控制台运行任何void函数(如console.log)时,它也会打印出有关返回值的信息,在本

每次执行
console.log
时,输出日志中都会追加一行内容
undefined


它在Windows和Linux上的Firefox和Chrome中都会发生。

如果您正在从JS文件运行
console.log()
,则不应附加此
未定义的


如果您正在从控制台本身运行
console.log()
,这是有意义的。这就是为什么:在控制台中,您可以键入变量的名称(例如,尝试键入
window
),它会打印有关该变量的信息。当您从控制台运行任何void函数(如console.log)时,它也会打印出有关返回值的信息,在本例中为
undefined


我在我的Chrome(Mac ver 23.0.1271.101)上测试了这两种情况,当我在控制台中运行它时,我确实看到了
未定义的
行。当我在控制台中写入这一行时,也会出现未定义的
var bla=“sdfdfs”
如果您从JS文件运行
console.log()
,则不应追加这一
未定义的


如果您正在从控制台本身运行
console.log()
,这是有意义的。这就是为什么:在控制台中,您可以键入变量的名称(例如,尝试键入
window
),它会打印有关该变量的信息。当您从控制台运行任何void函数(如console.log)时,它也会打印出有关返回值的信息,在本例中为
undefined


我在我的Chrome(Mac ver 23.0.1271.101)上测试了这两种情况,当我在控制台中运行它时,我确实看到了
未定义的
行。当我在控制台中写这行代码时,也会出现未定义的代码:
var bla=“sdfdfs”
虽然talkol的答案是肯定的,但我还是尽量把它说得更清楚:

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

因此,Chrome控制台中的函数
console.log()
使用no或空返回语句,因此该函数的返回值未定义。此函数返回值也会显示在Chrome控制台中

[如果有人知道在Google Chrome源代码中哪里可以找到
console.log()函数的定义,请使用链接进行评论,那么我们甚至可以进一步查看真正的代码,这将非常好。]

资料来源:


虽然talkol的答案是可以的,但我还是想说得更清楚一些:

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

因此,Chrome控制台中的函数
console.log()
使用no或空返回语句,因此该函数的返回值未定义。此函数返回值也会显示在Chrome控制台中

[如果有人知道在Google Chrome源代码中哪里可以找到
console.log()函数的定义,请使用链接进行评论,那么我们甚至可以进一步查看真正的代码,这将非常好。]

资料来源:


如果您使用
console.log
在一行中发出多个值,这里有一个简单的替代方法:

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

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

如果您使用
console.log
在一行中发出多个值,下面是一个简单的替代方法:

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

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

按照图片解决此问题:

Ctrl + Shift + J

按照图片解决此问题:

Ctrl + Shift + J

您只需创建自己的类似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."

您可以做的只是创建自己的类似于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."

浏览器中的控制台环境旨在获取程序中最后一个语句表达式,并对其求值,然后显示该值

赋值表达式的结果是已赋值的值。 所以JavaScript引擎只是做了一个赋值,但控制台做了一个额外的步骤,那就是设置我的最后一个语句,将该值返回给您。这就是为什么它会打印2:


在没有返回值的语句中,会出现未定义的情况。

浏览器中的控制台环境旨在获取程序中最后一个语句表达式,并对其求值,然后显示该值

赋值表达式的结果是已赋值的值。 所以JavaScript引擎只是做了一个赋值,但控制台做了一个额外的步骤,那就是设置我的最后一个语句,将该值返回给您。这就是为什么它会打印2:


在没有返回值的语句中,您会得到类似undefined的内容。

undefined
是Chrome developer tools中console.log()的返回值。如果在Chrome developer tools中执行以下操作,您将得到未定义,并且您将看到,即使x的值为3,您也会得到未定义

>设x=3
>未定义