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

请问关于JS return 用法?

/ 猿问

请问关于JS return 用法?

慕斯王 2019-09-19 18:14:39

JS return 用法


查看完整描述

4 回答

?
函数式编程

首先要说明的一点,JS术语前端程序,php属于后端程序 ,前端程序和后端程序要交货,必须通过“请求”操作来进行。js代码里可以通过Ajax或者表单来提交给后端的php程序。 如果你使用JQuery的话可以使用

$.get("123.php?pos="+"{'x':"+e.screenX+",'y':"+screenY+"}" ) 

来进行Ajax提交。因为你的函数为事件绑定的函数,所以在触发事件以外的其他地方使用时,这个函数是获取不到其参数event的。要提交到php程序的话需要把提交请求的代码放到时间的函数里面。你的函数得改为:

function getMousePos(event) {                 var e = event || window.event;     

    $.get("123.php?pos="+"{'x':"+e.screenX+",'y':"+screenY+"}" );              return true;}

123.php中可以使用 json_decode来对传入的pos参数进行解析即可。


另:建议不要在鼠标移动事件里绑定getMousePos这个函数,因为你稍稍移动一下鼠标,就要对php程序进行一次请求,这样会造成对后端程序服务的大量访问。




 总体上来说,return一般是用在函数中的用来向解析器表达退出函数并返回调用函数空间的命令。

    在JS这个专门用于web的程序设计语言来讲,其使用环境最为广泛的就是在浏览器环境下使用。W3C规定了一些供JS程序和页面代码进行交互的接口,如浏览器级别的BOM(BrowserObjectModel,浏览器对象模型)和DOM(Document Object Model,文档对象模型)。通过这些接口,JS程序就可以畅快淋漓地和页面进行开心的“交谈”和“合作”了。


  1. 在函数中,表示返回:



    1)退出函数空间。

12345          function a(){           var aa=0;           return ;           var bb=0;           }

          解析:函数执行到return就返回了调用函数的空间,返回值为undefined,后面的代码将不会被执行,即var bb=0是不会被执行的。当然,这种情况下不写return也是可以的,因为没有返回任何值。

    2)退出函数空间并返回函数计算结果。

12345       function b(){       var aa=0;       aa=aa+1;       return aa;        }

                解析:b函数别调用后返回了内部的变量aa经过计算过后的值,即1。此时调用函数b(),就会返回一个值1,可以使用变量赋值的形式获取函数的返回值,如cc=b(),就将b函数的计算结果赋值给了cc这个变脸;

   3) 函数返回的综合使用。

           

123456789//根据得分折算出用“优、良、中、差”表示的成绩fucntion zhesuan(var defen){   if(defen<60){ return "差";}   if(defen<80){ return "中";}   if(defen<90){ return "良";}   if(defen<=100){ return "优";}   return;   var jieguo="return 使用实例";  }

             解析:zhesuan函数通过传入的得分参数defen来折算出“优、良、中、差”表示的成绩。正常情况下,我们通过显示折算算法的直接代码化,需要进行多重判定才能达到效果:

   60分以下为差

   60至79分为中

   80至89分为良

   90以上为优

转换为程序代码就要分别写if …else if ....else if 代码:

1234567891011    if(defen<60) {      zhesuanjieguo="差";    else if (defen>60 && defen<80){      zhesuanjieguo="中";    }    else if (defen>=80 && defen<90){       zhesuanjieguo="良";      }      else if (defen>90 && defen<=100){       zhesuanjieguo="优";     }

    这样写代码量大,编写和阅读都容易对分段搞错。

        如果这样写:   

1234    if(defen<60){  zhesuanjieguo= "差";}   if(defen<80){  zhesuanjieguo= "中";}   if(defen<90){  zhesuanjieguo= "良";}   if(defen<=100){ zhesuanjieguo="优";}

   上面的代码无论怎样执行,结果都是"优",就不能达到效果。

     因为return具有停止执行后续代码并返回退出函数的作用,所以通过函数来进行折算就不需要作多重判定了,是不是很省事?


2. 与DOM或者DOM结合使用

   

例如在点击事件中:

onClick='return add_onclick()'与 onClick='add_onclick()'

JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。

而该值决定了当前操作是否继续。

当返回的是true时,将继续操作。

当返回是false时,将中断操作。

而直接执行时(不用return)。将不会对window.event.returnvalue进行设置

所以会默认地继续执行操作

详细说明如下:

例如:

当在 <a href="abc.htm" onclick="return add_onclick()">Open</a> 中

如果函数 add_onclick() 返回 true, 那么 页面就会打开 abc.htm

否则, (返回 false), 那么页面不会跳转到 abc.htm, 只会执行你的 add_onclick() 函数里的内容. (add_onclick函数中控制页面转到 abc.htm除外

)

而 <a href="abc.htm" onclick="add_onclick()">Open</a>

不管 add_onclick() 返回什么值, 都会在执行完 add_onclick 后打开页面 abc.htm



查看完整回答
反对 回复 2019-09-22
?
弑天下

function f(a, b) {

    var sum = 1;

    while (a <= b){

        sum = sum + a;

        a += 1;

    }

 

    // console.log(sum);

    // 可以在函数的内部通过return设置函数的返回值

    // 在函数中,程序执行到return行,就会停止,后面未执行的代码也不再执行

    // return sum;

    if(1 > 1){

        return 1;

    }else{

        return 5;

    }

    // console.log(123);

}

 

console.log(f(1,3)  + f(2,5));

// f(2,5);

 

无论怎么改变函数f(a,b)的值,输出的结果只会是return后的值,return相当于循环中的break,有异曲同工之巧。



查看完整回答
反对 回复 2019-09-22
?
德玛西亚99

打个比方。你让你的一个下属去做一个打酱油的工作。
正常来说“他去工作了”,到这里就完事了
但你又想知道他打没打到酱油。或给你了他钱。你想让他把剩下的钱还给你。这就需要把你的一属身上按你的要求定制相应的反馈信息
这就需要“下属”有return 的方式。把你所需要的东西反馈回来
return “成功"
return "剩余10元"
等等


查看完整回答
反对 回复 2019-09-22
?
慕函数4003404

return的话一个是正常的给方法提供返回值的作用,后面加上你要返回的内容。
return后还可以什么都不加,直接一个分号结尾。一般用于JS方法中的一些例外返回。比如说判断一个人的成绩值,你对于输入的成绩小于0的值,可以直接return让它什么都不做,因为如果js不停去alert很多错误信息,也会有体验上的问题。所以许多人选择直接return来处理错误输入等。

查看完整回答
反对 回复 2019-09-22

添加回答

回复

举报

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