【退役之重学前端】关于在控制台得到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,因为它没有返回值。

相关推荐
XU磊260几秒前
深入理解表单---提交用户与网页交互的重要方式:GET 与 POST 的本质区别与应用实践
服务器·前端·javascript
爱分享的程序员3 分钟前
前端跨端框架的开发以及IOS和安卓的开发流程和打包上架的详细流程
android·前端·ios
珎珎啊14 分钟前
uniapp+vue3移动端实现输入验证码
前端·javascript·uni-app
HtwHUAT41 分钟前
五、web自动化测试01
前端·css·chrome·python·功能测试·selenium·html
86Eric44 分钟前
Vue 中 使用 Mixins 解决 多页面共用相同组件的相关问题
前端·javascript·vue.js·mixins·公用组件
qq_25249639961 小时前
react 子组件暴露,父组件接收
前端·javascript·react.js
fakaifa1 小时前
【最新版】西陆健身系统源码全开源+uniapp前端
前端·小程序·uni-app·开源·php·约课小程序·健身小程序
南囝coding1 小时前
关于我的第一个产品!
前端·后端·产品
iOS阿玮1 小时前
别等了,今天是Xcode15时代的最后一天。
前端·app·apple
沙尘暴炒饭1 小时前
vuex持久化vuex-persistedstate,存储的数据刷新页面后导致数据丢失
开发语言·前端·javascript