js中return关键词的作用_return的用法详解

更新日期: 2018-06-07阅读: 4.4k标签: 关键词

return从字面意思来看就是返回,官方定义return语句将终止当前函数并可以返回当前函数的值; 也就是说return后面可以跟一个value,也就是说可以跟javascript中的任何数据类型,数字,字符串,对象等,当然也可是再返回一个函数 


return语法:  

return[()[expression][]];

说明:可选项 expression 参数是要从函数返回的值。如果省略,则该函数不返回值。

return 语句来终止一个函数的执行,并返回 expression 的值。如果 expression 被省略,或在函数内没有 return 语句被执行,则把值 undefined 赋给调用当前函数的表达式。  


return返回控制:

1、return后expression 被省略时,返回值为undefined

function fn(){
    //code
    return;
}
console.log(fn());//返回undefined

2、return后带非函数的返回值

//判断数字的奇偶性
function fn(num){
    return  num%2==0?true:false;  
}
console.log(fn(2));//返回true

3、当return后带函数的返回值

function test(){
    console.log("执行了tes函数")
}
function fn(){
    return test()
}
console.log(fn())//执行了tes函数

4、return只在当前函数有效,不会影响其他外部函数的执行

function test(){
    return
}
function test1(){
 	console.log("执行了test1")
}
function fn(){
    test()
    test1()
}
fn()//执行了test1


return细节知识:

例如:onClick='return add_onclick()'与 onClick='add_onclick()'的区别

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

return的用法详解当返回的是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",例:

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

调用方法返回true时才提交表单,反之则不提交,这是submit按钮,调用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前  


链接: https://www.fly63.com/article/detial/863

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!