JavaScript中return关键字的作用与事件处理详解

作者:窗边听雨时间:2026-10-29 16:28:40浏览:537

本文详解JavaScript中return关键字的双重作用:在普通函数中用于终止执行并返回指定值,若省略则默认返回undefined;在DOM事件(如onclick)中,return用于设置window.event.returnValue以控制后续默认行为是否继续。通过对比带与不带return的事件调用方式,阐明如何正确利用返回值控制表单提交或链接跳转。

JavaScript中return的基本语法与返回值机制

JavaScript中的return关键字应用广泛,许多开发者对其具体作用机制可能尚不完全清楚。本文将深入解析return在JavaScript中的核心功能与使用场景。

return语句的主要功能是使当前函数立即退出,并将一个指定的值返回给调用者。

其基本语法结构如下:

return [expression];

其中,expression参数是可选的,代表希望从函数返回的具体数值或对象。如果省略该参数,函数将不返回任何有效值。

使用return语句可以强制终止函数的执行流程,并返回expression所指定的值。如果代码中省略了expression,或者函数执行过程中没有遇到任何return语句,JavaScript引擎会将undefined赋值给调用该函数的表达式。

以下示例展示了return语句在普通函数中的基本用法:


function myfunction(arg, arg){ 
  var r; 
  r = arg * arg; 
  return(r);
}

return关键字表示程序从被调用的子函数返回到主调函数继续执行。返回值由return后的参数指定。通常情况下,使用return是必要的,因为函数调用的主要目的往往就是通过返回值来传递计算结果。

如果确定不需要函数返回任何具体值,可以在函数声明中使用void关键字来明确其类型。

补充说明:如果函数名前定义了返回类型(如int、double等),则必须提供返回值;而如果是void类型,则可以省略return语句。但在void函数中即使写了return,也无法返回具体的数值。

以下是一个非void类型函数的示例:


int f()
{
  int i=;
  return ;
  //return(i);  //这样也可以
}

以下是一个void类型函数的示例:

void f() { int i = 0; // return; // 即使注释掉return语句,代码也能正常执行 }

return在DOM事件处理中的控制作用

补充:JavaScript中return的特殊作用

在JavaScript的事件处理中,return包含了一些重要的细节知识:

例如,onClick='return add_onclick()' 与 onClick='add_onclick()' 之间存在显著区别。

在事件中调用函数时,使用return返回值实际上是对window.event.returnValue属性进行设置。

该属性的值决定了当前操作是否继续执行后续的默认行为。

当return返回true时,浏览器将继续执行默认的后续操作。

当return返回false时,浏览器将中断后续的默认操作。

如果直接执行函数而不使用return(即不加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函数内部手动控制了页面跳转)。

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

无论 add_onclick() 返回什么值,页面都会在执行完 add_onclick 函数后,默认打开 abc.htm。

另外补充:

在onclick事件中,其行为相当于 onclick="return true/false"。

例如:

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


function check()
{
if(obj.value=="" )
  {
   window.alert("不能为空!");
   obj.focus();
   return false;
  }
   return true;
}

在调用js函数时,如果不需要return,但希望表单能够提交,需要在js函数中明确添加提交语句。

------------------------------------------------------------------------------------------

例如:


<script language="javascript">
function check()
{
if(obj.value=="" )
  {
   window.alert("不能为空!");
   obj.focus();
   return false;
  }
   document.myform.submit();
   return true;
}
</script>

注:document.myform.submit(); 必须在 return true 之前执行。

作者最新文章