js中return的用法

JavaScript09

js中return的用法,第1张

定义:return 语句会终止函数的执行并返回函数的值。

根据return的定义,可以明确,return只会出现在函数中,否则将会报语法错误。

函数中如果存在循环语句,在循环语句中可以使用return,此时会跳出循环返回结果而不执行后面的循环操作。需要注意的是,return跳出循环的机制与break不同,break只会跳出单层循环,而return不管几层循环都会直接跳出所有循环,终止执行循环。

return 后面可以是基础数据类型,也可以是引用类型或函数,返回函数的用法可以用来实现闭包。

return 后不跟任何数据,返回的是undefined。

一、函数返回值,并终止函数的运行

语法:return 表达式;

在函数语句结束时执行,并返回表达式的值作为函数的结果;

二、返回控制

语法:return

一般来讲,为事件处理函数返回return:false,作用在于阻止默认事件行为和取消默认动作,比如,在默认情况下点击一个元素,那么页面就会跳转到元素href属性指定的页,那当你用return false时,就相当于一个终止符,而return true相当于一个执行符。

扩展资料:

return 工作原理

被调函数运行结束后才会返回主调函数,但是被调函数运行结束后系统为被调函数中的局部变量分配的内存空间就会被释放。也就是说,return 返回的那个值在被调函数运行一结束就被释放掉了。

事实上在执行 return 语句时系统是在内部自动创建了一个临时变量,然后将 return 要返回的那个值赋给这个临时变量。所以当被调函数运行结束后 return 后面的返回值真的就被释放掉了,最后是通过这个临时变量将值返回给主调函数的。

而且定义函数时指定的返回值类型实际上指定的就是这个临时变量的类型。这也是为什么当 return 语句中表达式的类型和函数返回值类型不一致时,将 return 的类型转换成函数返回值类型的原因。

return 语句实际上就是将其后的值赋给临时变量,所以它要以临时变量的类型为准,即函数返回值的类型。

首先要说明的一点,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)退出函数空间。

          function a(){

           var aa=0

           return 

           var bb=0

           }

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

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

       function b(){

       var aa=0

       aa=aa+1

       return aa 

       }

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

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

       

//根据得分折算出用“优、良、中、差”表示的成绩

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 代码:

    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="优"

     }

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

      如果这样写:

    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