为何console.log打印值后会输出undefined?技术问题咨询
为什么console.log输出值后会跟着undefined?
这是控制台的交互特性导致的,分两个层面就能搞懂:
- 首先,
console.log(xxx)本身的作用就是主动把传入的xxx打印到控制台,这是它的核心功能,不管函数返回什么,这个打印动作都会优先执行。 - 其次,浏览器或Node的控制台在你执行一行代码后,会自动显示这行代码的返回值。而
console.log函数的返回值就是undefined(它只负责打印内容,没有需要返回的有效数据),所以在它完成主动打印后,控制台会接着输出这个返回值。
举个直观的例子:
当你在控制台输入:
console.log("测试内容")
执行顺序是:
- 调用
console.log,先把"测试内容"输出到控制台; - 这行代码执行结束,返回
undefined,控制台自动把这个返回值也显示出来。
如果不想看到后面的undefined,可以用void关键字吃掉返回值:
void console.log("测试内容")
这样控制台只会打印"测试内容",不会额外显示返回值了。
内容的提问来源于stack exchange,提问作者Raghul SK
相关产品推荐
相关产品推荐

