【这是在百度知道回答时写的,希望对需要的人有用】

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

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

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

1)退出函数空间。

1
2
3
4
5
          function a(){
           var aa=0;
           return ;
           var bb=0;
           }

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

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

1
2
3
4
5
       function b(){
       var aa=0;
       aa=aa+1;
       return aa; 
       }

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

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

 

1
2
3
4
5
6
7
8
9
//根据得分折算出用“优、良、中、差”表示的成绩
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 代码:

1
2
3
4
5
6
7
8
9
10
11
    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="优";
     }

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

如果这样写:

1
2
3
4
    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

另外补充:

onclick事件时就相当于onclick=”return true/false”

例:

1
2
3
4
5
6
7
8
9
10
function check()
{
if(obj.value=="" )
   {
     window.alert("不能为空!");
     obj.focus();
     return false;
   }
     return true;
}

调用方法返回true时才提交表单,反之则不提交,这是submit按钮

——————————————————————————————

调用js函数不需要return,但是表单却无法提交,所以在js函数中加上一句话

例:

1
2
3
4
5
6
7
8
9
10
11
function check()
{
if(obj.value=="" )
   {
     window.alert("不能为空!");
     obj.focus();
     return false;
   }
     document.myform.submit();
     return true;
}

注:document.myform.submit();要在return true前

关于javascript中的 return false和return true

return 是javascript里函数返回值的关键字,一个函数内处理的结果可以使用return 返回,这样在调用函数的地方就可以用变量接收返回结果。return 关键字内任何类型的变量数据或表达式都可以进行返回,甚至什么都不返回也可以比如

1
2
3
4
5
6
7
function NullReturn(IsNull)
{
if(IsNull==true)
{
return;
}
}

这样写也是可以的,这里的意思是返回空或未定义(undefined)

所以有的时候return 的作用就是用来终止函数执行。

比如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<html>
<head>
<title>return验证测试</title>
<script language="javascript">
function Login_Click()
{
if(document.form1.UsName.value=="")
{
alert('用户名为空');
}
if(document.form1.UsPwd.value=="")
{
alert('密码为空');
}
alert('登陆成功');
}
</script>
</head>
<body>
<form name="form1">
<input type="text" name="UsName" >用户名
<input type="password" name="UsPwd">密码
<input type="button" name="Login" onClick="Login_Click();" >登陆
</form>
</body>
</html>
不加return 的情况
return
<html>
<head>
<title>return验证测试</title>
<script language="javascript">
function Login_Click()
{
if(document.form1.UsName.value=="")
{
alert('用户名为空');
return;
}
if(document.form1.UsPwd.value=="")
{
alert('密码为空');
return;
}
alert('登陆成功');
}
</script>
</head>
<body>
<form name="form1">
<input type="text" name="UsName" >用户名
<input type="password" name="UsPwd">密码
<input type="button" name="Login" onClick="Login_Click();" >登陆
</form>
</body>
</html>

运行就会发现加return 和不加return 的区别,

最简单的测试办法,上面的两个例子什么都不输入直接登陆

不加return的现象是先提示用户名没输入,然后提示密码没输入;加了return之后遇到一个没输入之后就不再继续检测

return false表示返回一个false值,也就是说提交是不成功的,就是不会提交上去。

return true表法返回一个true值,也就是提交了,不管你输入没有输入值,都会提交到action指定页面。