首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“未定义”在事件循环中获取输出,为什么?

“未定义”在事件循环中获取输出,为什么?
EN

Stack Overflow用户
提问于 2017-06-28 08:50:24
回答 2查看 59关注 0票数 1

我一直在阅读解释事件循环的优秀文章。

在这篇文章中,有一段代码说明了消息是如何排队和处理的:

代码语言:javascript
运行
复制
function f() {
  console.log("foo");
  setTimeout(g, 0);
  console.log("baz");
  h();
}

function g() {
  console.log("bar");
}

function h() {
  console.log("blix");
}

f();

这将打印在控制台(Chrome)如下: foo,baz,blix,未定义的,bar。

我想我理解这里发生了什么,但我不明白这个未定义的是从哪里来的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-28 08:53:34

undefinedf()的返回值,您将看到它是否在交互式控制台上执行,该控制台自动打印最后执行的表达式的值。

票数 6
EN

Stack Overflow用户

发布于 2017-06-28 08:55:03

undefined值是f()语句的结果。javascript中的每个语句都有一个值作为表达式;没有显式返回语句的函数基本上返回undefined

Chrome控制台总是输出最后执行语句的值,在本例中这是f()的结果。

bar稍后打印出来(即f()返回之后),这让人感到困惑;但这是由超时引起的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44797825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档