深入理解javascript中return的作用


Posted in Javascript onDecember 30, 2013

这里面的return含有一些细节知识:

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

JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。

而该值决定了当前操作是否继续。
当返回的是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前

 

关于javascript中的 return false和return true
return 是javascript里函数返回值的关键字,一个函数内处理的结果可以使用return 返回,这样在调用函数的地方就可以用变量接收返回结果。return 关键字内任何类型的变量数据或表达式都可以进行返回,甚至什么都不返回也可以比如

function NullReturn(IsNull)
{
if(IsNull==true)
{
return;
}
}

这样写也是可以的,这里的意思是返回空(null)
所以有的时候return 的作用就是用来终止函数执行。
比如
<html>
<head>
<title>return验证测试</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 的情况
加return
<html>
<head>
<title>return验证测试</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 的区别,
最简单的测试办法,上面的两个例子什么都不输入直接登陆,楼就明白了。

不加return的现象是先提示用户名没输入,然后提示密码没输入;加了return之后遇到一个没输入之后就不再继续检测

return false表示返回一个false值,也就是说提交是不成功的,就是不会提交上去。
return true表法返回一个true值,也就是提交了,不管你输入没有输入值,都会提交到action指定页面。

Javascript 相关文章推荐
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
Nov 03 Javascript
新手常遇到的一些jquery问题整理
Aug 16 Javascript
根据json字符串生成Html的一种方式
Jan 09 Javascript
jquery垂直公告滚动实现代码
Dec 08 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
Aug 30 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
May 12 Javascript
Angular.js去除页面中显示的空行方法示例
Mar 30 Javascript
vue 将页面公用的头部组件化的方法
Dec 18 Javascript
详解node字体压缩插件font-spider的用法
Sep 28 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
禁止IE用右键的JS代码
Dec 30 #Javascript
js将控件隐藏及display属性的使用介绍
Dec 30 #Javascript
JS的document.all函数使用示例
Dec 30 #Javascript
Jquery插件easyUi表单验证提交(示例代码)
Dec 30 #Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
Dec 30 #Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
Dec 30 #Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
Dec 30 #Javascript
You might like
php print EOF实现方法
2009/05/21 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
php读取torrent种子文件内容的方法(测试可用)
2016/05/03 PHP
PHP二维数组去重算法
2016/12/17 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
用JS实现选项卡
2020/03/23 Javascript
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
python 列表删除所有指定元素的方法
2018/04/19 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
盛大二次面试题
2016/11/18 面试题
保安拾金不昧表扬信
2014/01/15 职场文书
公司应聘求职信
2014/06/21 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
三峡导游词
2015/01/31 职场文书