JS中的语句执行问题?

function fn() {
    alert ('wo')
}
console.log(fn())

为何当我执行上述代码的时候,首先弹出了弹出框,这个并没有什么问题,console.log则输出undefined? 这个undefined是那里来的?

阅读 2.5k
6 个回答

JavaScript高级程序设计(第3版)第64页,函数不设置return,默认放回undefined。

在与控制台交互时,控制台里会自动打印你输入的表达式的值,比如你输入1+1再按回车,它就给你打印个221+1的值,当你输入console.log(fn())的时候,首先会打印一个fn()的返回值,即undefined——因为函数fn没有返回值,然后又打印出第二个undefined,这是因为console.log调用之后没有也没有返回值,所以打印undefined

undefined 是因为你的函数没有返回值,可以和以下代码作为对比

function fn() {
    alert ('wo')
    return 'wo'
}
console.log(fn())

函数没有返回值

return返回'wo'即可

函数分为两种情况:1 指定了返回值,即 return xx;2 没有指定返回值,这个时候默认返回undefined。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题