为了账号安全,请及时绑定邮箱和手机立即绑定

求大神解惑 刚学JS,这个return在这里起什么作用?

求大神解惑 刚学JS,这个return在这里起什么作用?

天窗的蚂蚁 2016-01-21 17:20:33
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title></title>     <script type="text/javascript">         //定义函数         function addNum(a,b)         {             var m=a+b;             return m;         }         //调用函数         var sum=addNum(1,2);         document.write("相加的结果是:"+sum);     </script> </head> <body> </body> </html>刚开始学JS,这个return在这里起什么作用?返回m的值吗?为什么我把它去掉后,就出错了?
查看完整描述

5 回答

已采纳
?
_Forliberty

TA贡献3条经验 获得超2个赞

m是这个函数的返回值,表示a+b的结果。你可以这么理解:当你用计算器计算1+2的值的时候,如果计算器没有显示屏显示出来3这个结果,你就只能知道计算器确实计算了1+2,但是最终结果是多少你并不知道。sum=addNum(1, 2),如果没有return语句,那么sum究竟等于什么呢?既然sum是个无意义的值,那么用JS输出的时候肯定会报错。

查看完整回答
2 反对 回复 2016-01-21
  • zhangcl
    zhangcl
    不会的,比如说: var sum; console.log(sum); 这样的语句定义sum,但没有初始化,输出结果是undefined。 同理上面的addNum()函数如果没有定义return的返回值(也就是函数没有返回值,只是进行了操作处理),如果用var sum=addNum()这样的方式去接收,和上面的方式应该是一样的。你在控制台打印,结果应该也是undefined(我也没验证过,但是原理应该是一样的,你可以自己去实验一下)。一般来说,在写js的时候,如果出现楼主输的那种写法,用debug调试,我从来没有遇到过报错的情况,鼠标查看sum的值,肯定是undefined。
  • 天窗的蚂蚁
    天窗的蚂蚁
    对对,确实是出现undefined.谢谢您的热心解答。
  • _Forliberty
    _Forliberty
    感谢楼上的指正。输出确实是undefined,我在描述的时候没有仔细说明,只是简单地表达得不到想要的结果,希望没有误导楼主。大家共同学习,共同进步!
?
咸鱼王GG

TA贡献1条经验 获得超0个赞

JS代码每次执行的时候都会有返回值,函数的返回值是给调用的函数,所以当你调用sum的时候如果sum函数里面不写返回值返回的是一个undefined 所以自然会报错

查看完整回答
反对 回复 2016-01-22
?
yishuixs

TA贡献4条经验 获得超4个赞

返回值,去掉当然出错,语法都不对了

查看完整回答
反对 回复 2016-01-22
?
Perona

TA贡献355条经验 获得超403个赞

return就是返回函数的结果。这里m就是addNum()函数的返回值。

查看完整回答
反对 回复 2016-01-21
  • 5 回答
  • 0 关注
  • 1734 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信