Google chrome 如果console.log(4)在Chrome控制台中输出未定义,这意味着什么?

Google chrome 如果console.log(4)在Chrome控制台中输出未定义,这意味着什么?,google-chrome,console,Google Chrome,Console,我使用Chrome控制台编写了一个简单的语句: console.log(4) 并收到了 输出: 未定义 未定义的语句是什么意思? 未定义的语句是否意味着正确执行?如果我通过一个单独的html文件执行该语句,然后查看控制台,则输出仅为4。我已经对其进行了测试,即使使用预设变量,它在我的Safari中也不起作用: i = 2; console.log(i); 这似乎解释了WebKit(Chrome和Safari的引擎)的缺陷: 未定义的是控制台.log(…)的返回值 通过在控制台中定义两个函数可

我使用Chrome控制台编写了一个简单的语句:

console.log(4)
并收到了 输出:

未定义

未定义的语句是什么意思?
未定义的语句是否意味着正确执行?如果我通过一个单独的html文件执行该语句,然后查看控制台,则输出仅为4。

我已经对其进行了测试,即使使用预设变量,它在我的Safari中也不起作用:

i = 2;
console.log(i);
这似乎解释了WebKit(Chrome和Safari的引擎)的缺陷:
未定义的
控制台.log(…)
的返回值

通过在控制台中定义两个函数可以看到这一点,一个返回某物,另一个不返回任何内容,例如:

function f1() {
  return 1;
}
function f2() {
  return;
}
然后分别调用它们(手动)


还要注意这些返回值字符串前面的小符号。

Oh cool。这个特性是为了调试而实现的吗?有趣的是:很明显,控制台会给你最新的返回值,所以如果你调用f2();f1();输出仅仅是1通过在同一行上依次调用它们,实际上是在丢弃第一个结果。顺便说一下,如果你把
var x=f1()
,您还将看到
1
,因为该表达式的结果仍然是
1
。这就是像
x=y=z=f1()
这样的语句起作用的原因。@Bart-For-me'var x=f1();'在控制台中仍然给我未定义的。但是当然,只要f1()返回它应该返回的1x=f1()
(即没有
var
关键字)时,code>给出
1
。不确定这是我上次评论后的新行为,还是我只是错过了它。感谢您注意到这一点。如果在'12年询问,则不确定这是否可以重复,而您链接的问题是在'13年询问的……我相信
哪一条线索有更好和清晰的答案
也是将问题标记为重复的标准。这是一种更好地整合相关线程的方法。
function f1() {
  return 1;
}
function f2() {
  return;
}
f1(); // shows '1'
f2(); // shows 'undefined'