js这里有return和没return打印出来的结果一样?

var hh = 5;
function a(){console.log(hh)};
function b(){a()};
function c(){return a()};b();c();
都是输出5
阅读 3k
2 个回答

return为函数回传某个值的语句。没写默认(自动)为return undefined

return a()会回传a函数区块代码执行完的回传值。

return a回传a函数。

a()执行a函数中区块代码。

b()执行b函数中区块代码,相当于执行a函数。

问题中的代码中都没用到回传值,所以a()return a()都是只在执行a函数中区块代码。c函数虽有回传a(),因为a函数没写回传值,所以c函数也是回传undefined

var hh = 5;
function a(){console.log(hh)};
function b(){a()};
function c(){return a()};
b();//执行函数b的代码 a() ,这里相当于执行函数a,所以打印出了5
c();//执行函数c, return a(),执行a()函数,打印出5,然后返回值为undefined, 所以return undefined,

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