每次console.log
执行时,都会undefined
在输出日志中附加一行语句。
它发生在 Windows 和 Linux 上的 Firefox 和 Chrome 中。
每次console.log
执行时,都会undefined
在输出日志中附加一行语句。
它发生在 Windows 和 Linux 上的 Firefox 和 Chrome 中。
如果您console.log()
从 JS 文件运行,则undefined
不应附加此行。
如果您console.log()
从控制台本身运行,这是有道理的。这就是为什么:在控制台中,您可以输入变量的名称(例如尝试输入window
)并打印有关它的信息。undefined
在这种情况下,当您从控制台运行任何 void 函数(如 console.log)时,它还会打印出有关返回值的信息。
我在 Chrome(Mac 版本 23.0.1271.101)上测试了这两种情况,undefined
当我在控制台中运行它时,确实看到了这一行。undefined
当我在控制台中写下这一行时,这也会出现:var bla = "sdfdfs"
虽然talkol的回答没问题,但我试着更直截了当地说:
JavaScript 被设计为一种动态语言,这意味着函数返回值的类型(字符串、空值、布尔值……)不是预先定义的。如果函数不使用 return 语句或没有值的空 return 语句,JavaScript 会自动返回 undefined。这意味着在 JavaScript 中,每个函数都会返回一些东西,至少是未定义的。
因此console.log()
Chrome 控制台中的函数要么使用 no 要么使用空的 return 语句,因此该函数的返回值是未定义的。此函数返回值也会显示在 Chrome 控制台中。
【如果有人知道console.log()
谷歌浏览器源代码中函数的定义在哪里可以找到,请在链接里评论,然后我们甚至可以更进一步看看真正的代码,会很好。】
资料来源:
按照图片解决这个问题:
Ctrl + Shift + J
浏览器中的控制台环境旨在获取程序中的最后一个语句表达式并评估它的值,然后向您显示该值。
赋值表达式的结果是被赋值的值。所以 JavaScript 引擎只是做了一个赋值,但控制台做了一个额外的步骤,即设置我的最后一条语句是什么,把那个值还给你。这就是它打印 2 的原因:
在没有返回值的语句中,您会得到类似 undefined 的信息。
undefined
是 Chrome 开发者工具中 console.log() 的返回值。如果您在 Chrome 开发人员工具中执行以下操作,您将得到 undefined,并且即使 x 的值为 3,您也会看到您得到 undefined。
> let x = 3
> undefined