蒙国造博客

JavaScript返回空值return;的作用

要说明JavaSctipt返回空值return;的作用,我们先看看 return 的一些细节知识,如:onClick=’return add_onclick()’onClick=’add_onclick()’ 的区别。

JavaScript 在事件中调用函数时用return返回值,实际上是对 window.event.returnvalue 进行设置,而该值决定了当前操作是否继续。

而直接执行时(不用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除外)。而不带 return 的语句:

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

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

 

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

function NullReturn(IsNull)
{
    if(IsNull==true)
    {
        return;
    }
}

这样写也是可以的,这里的意思是返回空(null),所以有的时候return 的作用就是用来终止函数执行。再比如,不加return 的情况:

<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 的情况:

<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指定页面。

退出移动版