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

时间: 2018-06-07阅读: 553标签: 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前  


前端与编译原理——用JS写一个JS解释器

说起编译原理,印象往往只停留在本科时那些枯燥的课程和晦涩的概念。作为前端开发者,编译原理似乎离我们很远,对它的理解很可能仅仅局限于“抽象语法树(AST)”。但这仅仅是个开头而已。编译原理的使用,甚至能让我们利用JS直接写一个能运行JS代码的解释器。

js dom是什么?_JS中的DOM知识概览

JS中的DOM知识概览:文档对象模型,是针对 HTML 和 XML 文档的一个 API (应用程序编程接口), 描绘了一个层次化的节点树。 web 浏览器浏览一个页面的时候,DOM 就在幕后把你编辑的网页文档转换成一个文档对象。

理解 JavaScript 执行栈

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

一眼看穿JS变量,作用域和内存问题

这篇文章将梳理下环境,作用域链,变量对象和活动对象,以及内存管理问题。基本类型和引用类型的值,我们都知道JS中的数据类型有两大类,基本数据类型和引用数据类型,下面从三个方面来解剖他们

js基础_如何理解作用域和作用域链?

作用域外,无法引用作用域内的变量;离开作用域后,作用域的变量的内存空间会被清除,比如执行完函数或者关闭浏览器,作用域与执行上下文是完全不同的两个概念。我曾经也混淆过他们,但是一定要仔细区分。JavaScript代码的整个执行过程,分为两个阶段,代码编译阶段与代码执行阶段。

Js中的命名空间(namespace)

全局变量应该由有系统范围相关性的对象们保留,并且它们的命名应该避免含糊并尽量减少命名冲突的风险。在实践中,这意味着你应该避免创建全局对象,除非它们是绝对必须的。 所以你对此是怎么做的?传统方法告诉我们,最好的消除全局策略是创建少数作为潜在模块和子系统的实际命名空间的全局对象。

js 实现栈和队列

js实现栈或者队列有两种方式: 1.数组:数组本身提供栈方法(push,pop),队列方法(push,shift)。 2.链表:构造链表结构,说白了就是链表的插入(尾插),移除(栈:末尾节点移除,队列:头结点移除)

javascript的Object. hasOwnProperty方法

hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中(非继承属性)是否具有指定的属性,如果 object 具有带指定名称的属性,则 hasOwnProperty 方法返回 true,否则返回 false。

js常见知识点整理总结

一些常用的JavaScript 知识点整理,包括:两个函数是否等价、NaN是什么?它是什么类型?如何检测一个变量是否是NaN?作用域相关问题?js小数计算不准确的bug,js算法/思路相关,js类型强制转换

JavaScript中的魔幻代理Proxy

什么是 JavaScript 代理?通过 Proxy 我们可以拦截并改变一个对象的几乎所有的根本操作,包括但不限于属性查找、赋值、枚举、函数调用等等。利用 Proxy,我们可以拦截并不存在的属性的读取

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

广告合作文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯