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

时间: 2018-06-07阅读: 2889标签: js知识

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前  


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

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

JavaScript中奇特的~运算符

本次分享一下并不是很常用的按位非运算符~的原理以及一点点用法。产生式 UnaryExpression : ~ UnaryExpression 按照下面的过程执行:令 expr 为解释执行 UnaryExpression 的结果。令 oldValue 为 ToInt32(GetValue(expr))。返回 oldValue 按位取反的结果。

理解js中prototype和__proto__和的区别和作用?

在js中有句话叫一切皆对象,而几乎所有对象都具有__proto__属性,可称为隐式原型,除了Object.prototype这个对象的__proto__值为null。Js的prototype属性的解释是:返回对象类型原型的引用。每个对象同样也具有prototype属性,除了Function.prototype.bind方法构成的对象外。

Js如何获取ul中li的个数?

javascript如何获取ul中li的个数?下面本篇文章就来给大家介绍一下使用javascript获取ul中li个数的方法,希望对大家有所帮助。

js秒数转换成时分秒_js如何将秒拼接为时分秒显示?

接口返回的是int类型的秒数,在前端显示要求拼接为时分秒显示,这篇文章主要讲解实现js秒数转换成时分秒的方法。

JavaScript中变量提升和函数提升的意义理解

在ES6之前,Js中是没有块级作用域的,只存在全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分;函数提升只有函数声明中才发生。

理解 JavaScript 执行栈

所有的 JS 代码在运行时都是在执行上下文中进行的。执行上下文是一个抽象的概念,JS 中有三种执行上下文:全局执行上下文,函数执行上下文,Eval 执行上下文。通常,我们的代码中都不止一个上下文,那这些上下文的执行顺序应该是怎样的?

js的解析的两个阶段_预解析阶段、执行阶段

js不像C语言那样只要编译一次之后成.exe文件之后就不用在编译可以直接使用了,js是一种解释型语言,js同理是边解析边执行。js的解析分为两个阶段 1.预解析阶段 2.执行阶段。

js判断是否为IE浏览器的多种方法总汇

这篇文章主要整理通过js来判断浏览器是否为IE的多种方法。使用js脚本判断浏览器是否为ie,这里分享六种判断是否为ie的方法,有需要的朋友参考学习下。

js中void 0 与 undefined

偶然看到一个问题:为什么有的编程规范要求用 void 0 代替 undefined?如果不知道这个答案的小伙伴,第一反应就要问void 0是什么鬼?

为什么javascript不起作用?

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

点击更多...

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