【退役之重学前端】关于在控制台得到undefined的事

在浏览器控制台中,undefined 会时不时地,在我不想看到的地方出现。如果你遇到相同的问题,在这篇博客中你会得到答案。

先来看代码块

javascript 复制代码
function test(){
	
}
test()
 //undefined

再看下一个代码块

javascript 复制代码
function test(){
	return 1;
}
test()
 //1

再来看一个代码块

javascript 复制代码
console.log("hi")
//hi
//undefined

如你所见,undefined 出现的很莫名其妙。

为什么会这样呢?

相信你也注意到了,我连续三次的 代码块,这就是关键了,控制台中 JavaScript 期望在每一个 代码块最后一行代码 得到一个返回值 ,并且打印出来,如果没有,则默认为 undefined

在以下引用中你会更加详细的解释。

Why does console.log() return 'undefined'?

Harsh Mohite

harshm09.hashnode.dev

Summary:

  1. 浏览器控制台使用 REPL 环境
  2. REPL,即 Read - Evaluate - Print - Loop
  3. 你在控制台输入的所有代码行,首先会进入READ阶段,然后进入EVALUATE阶段,再然后执行PRINT语句。计算阶段会从最后一段代码获取一个返回值。如果返回值存在,那么返回值将会打印在控制台。否则,打印undefined。此后,进入到LOOP阶段,控制台准备好了从用户那里获取更多的输入。

ps:所以 console.log() 总会在最后打印一行 undefined,因为它没有返回值。

相关推荐
天渺工作室4 小时前
实现一个adblock/adblock plus等浏览器广告拦截器检测插件
前端·javascript
阳光是sunny4 小时前
Vue 项目怎么做用户行为全链路监控?轻量插件方案详解
前端·面试·架构
ZhengEnCi5 小时前
Q04-Vite禁用CSS代码分割-解决生产环境样式加载顺序混乱问题
前端·vue.js·vite
九酒5 小时前
AI Agent 开发踩坑记:口播功能非得用 APP 原生实现吗?
前端·人工智能·agent
Jackson__6 小时前
做了一段时间的AI coding后,我终于搞清了 CLI 和 MCP 的区别
前端·agent·ai编程
IT_陈寒8 小时前
JavaScript项目实战经验分享
前端·人工智能·后端
用户47949283569159 小时前
6w star,GitHub 趋势第一的 Ponytail,这个agent插件到底在火什么
前端·后端
薛定喵的谔10 小时前
我开源了一个精致的 Next.js 博客模板:Skyplume
前端·前端框架·next.js
张龙68711 小时前
构建生产级 AI Agent:工具调用与记忆架构实战指南
前端
kyriewen12 小时前
2026 年了,还在用 Node.js?Bun 迁移实战:20 分钟搞定,附踩坑记录
前端·javascript·node.js