• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

为什么这段函数不需要return返回值也能运行

function square(num){  sun=num*num;}var num = square(2);alert(sum);把var num换成var sum反而undefind,为什么会这样?

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与3

第一:var num = square(2);执行是因为js中可以把方法当做参数一样来使用,但是因为你的square方法没有return,所以var num是无法接收到square(2)执行后的值,square(2)执行得到的结果就是sun = 4;


所以你alert(num);还是得到的undified,至于你alert(sum),就错误的更离谱了,你的代码压根就没sum这个变量,你是把sun看成sum了吧!!


第二:函数如果没有返回值,在执行的时候,无法用变量来接收,没返回何来接受!


第三:给你更改了一下:
functionsquare(num){returnnum*num;}varnum=square(2);alert(num);这样,你只要用变量接收执行的结果,就可以得到想要的值!

使用道具 举报


  • sun和sum的问题不多说了
  • var num=square(2) 这句从右往左执行,执行效果是,电脑确实进行了2*2的运算,并且把运算结果4传给了sum,但是square函数并没有return,所以不返回值,也就无法给var num赋值。
  • 所以不管赋值成不成功,alert(sum)中的sum的值都是square(2)的运行结果,但是你把var num改成var sum就等于在square(2)执行完成后,重新定义了一个sum,这个重新定义的sum是没有值的,因为square(2)没有return.

使用道具 举报

functionsquare(num){varsum=num*num;returnsum;}varsum=square(2);alert(sum);

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!