js中return的用法
来源:互联网 发布:先锋电视网络看电视 编辑:程序博客网 时间:2024/06/05 08:12
一、函数返回值,并终止函数的运行
语法:return 表达式;
在函数语句结束时执行,并返回表达式的值作为函数的结果;
比如:
function foo(obj){var resultObj=obj//可对传入参数进行处理.return resultObj;}
在这个列子中:obj 代表的是一个对象.所谓对象就是所他可以包纳万物.无论是Number bool 还是String 或这是其他实列都包含在里面.然而Return就是需要将处理过后的结果返回出去.就相当于一个工厂.我提供原材料然而工厂输出的将会是产品.这样将还不明白我们可以简单的这样理解。
比如:用函数来做一个加法运算,需要他返回值。
function Add(a,b){var result=a+b;return result;}
这个列子中.如果你在外部直接调用这个函数如:
var text=Add(1,2);
就会得到(a+b)的和 也就是说结果是3;
再看一个例子:
function compare( a , b ){ //函数体,判断两个整数比较的三种情况 if( a > b ){ return a; } else if( a == b ){ return "一样大"; } else{ return b; } } //简单理解就是:Js 的函数返回的是对象,a,b 是对象,“一样大”也是对象(字符串)。
函数在一系列的代码执行后会得到一个期望的返回值,而此值就是通过return语句返回,并且将控制权返回给主调函数。
语法格式:
return 表达式
代码实例如下:
function add(){ var a=1; var b=2; return a+b;}function func(){ console.log(add())}func();
以上代码中,当调用func()函数的时候,控制权由func函数掌握,当再调用add函数的时候,控制权交付给add函数,然后返回一个值并将控制权再交付给func函数。
实例:
function a(){ return 10; //这个时候,函数a的值会等于10,并且函数中下面的内容不再执行 document.write(50); //由于上面已经return了,这条代码不会执行}
至于什么时候会用到,那看你要函数来做什么,你要他返回值就返回咯,不要他返回就不返回咯!
比如,用函数来做一个加法运算,需要他返回值,那就这样
function a( b, c ) { return b + c;}
那么调用:
var abc = a(5, 80);
这个时候,abc这个变量的值会是85
如果想直接输出结果,不要返回值那就
function a( b, c ) { document.write( b + c );}
这个时候调用,
var abc = a(5, 80);
那么页面会输出85,但abc是没有值的
默认函数是没有返回值的。
通常函数经过一系列处理后需要给外部返回一个值或者对象
比如function sum(a,b){return a+b};
alert(sum(1,2))==>3如果没有return将会弹出undefined
二、返回控制
语法:return;
一般来讲,为事件处理函数返回return:false; ,作用在于阻止默认事件行为和取消默认动作,比如,在默认情况下点击一个元素,那么页面就会跳转到元素href属性指定的页,那当你用return false;时,就相当于一个终止符,而return true;相当于一个执行符。
比如:
<a href="eoh.html" onclick="return add_onclick()">open</a> //return false/true <script> function add_onclick(){ return false; //false阻止跳转 } </script>
在js中,会常用return false; 来阻止表单提交或者继续执行下面代码,也就是阻止执行的默认行为。
比如:
function sum(){ if(true){ return false; } } function test(){ sum(); num(); }
虽然sum函数返回false阻止提交,但不会影响num函数的执行,a函数中返回false对test()函数而言只是相当于一个返回值,并不会影响test()函数的执行,简而言之,return:false;只对当前函数有效,并不会影响其他函数执行。
return 是javascript里函数返回值的关键字,一个函数内处理的结果可以使用return 返回,这样在调用函数的地方就可以用变量接收返回结果。return 关键字内任何类型的变量数据或表达式都可以进行返回,甚至什么都不返回也可以比如
function NullReturn(IsNull){ if(IsNull==true){ return; }}
这样写也是可以的,这里的意思是返回空(null),所以有的时候return 的作用就是用来终止函数执行。比如:
不加return
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></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:
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></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之后遇到一个没输入之后就不再继续检测
总的来说在js中对于return用法的三种情况的总结如下:
retrun true; 返回正确的处理结果。
return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为。
表单中
document.getElementById("submit").onclick=function(){ var result = validate(); if(result){ alert("輸入有誤!"); return false;//终止处理;阻止提交表单 }else{ return true;//返回正确的处理结果,提交表单 document.getElementById("login_form").submit(); }}
- js中return的用法
- js中return的用法
- js中return的用法
- js中return的用法
- js中return的用法
- js中return的用法
- js中return的用法
- js中return false 的用法
- js中return false(阻止)的用法
- js中return的作用及用法
- js中构造函数的return用法
- JS中return的用法及return;return false;return true的区别
- js中return false,return,return true的用法及差别
- js中return false,return,return true的用法及区别
- js中return false,return,return true的用法及区别
- js中return false,return,return true的用法及区别
- js中return false,return,return true的用法及区别
- js中return false,return,return true的用法及区别
- [Leetcode]_17 Letter Combinations of a Phone Number
- 性能测试流程阶段的工作
- 阿里云 ECS 部署:nginx+MySQL+Laravel+PHP7+Redis+Node.js
- 文本框
- 数据分页显示的简单实现
- js中return的用法
- acm_斐波那契数列
- C++类的大小及虚函数表
- sql 还原数据库 错误3154
- BufferedWriter.write()写中文乱码的问题
- Spring学习三:Bean与配置元数据
- NYOJ-1058-部分和问题
- 配置程序成为Linux服务
- Policy Gradient Methods for Reinforcement Learning with Function Approximation