• js中return;、return true、return false;区别


     

    return其实就是return undefined;

    1.语法及返回方式

    ①返回控制与函数结果

            语法为:return 表达式;

            语句结果函数的执行,返回调用函数,而且把表达式的值作为函数结果返回出去

    ②返回控制无函数结果

            语法为:return;

            在大多数情况下,为事件处理函数如果让其返回false,可以防止默认的事件行为.例如,默认情况下,点击一个<a>标签元素,页面会跳转到该元素href属性指定的页. 而return false就相当于终止符,return true就相当于执行符. 在js中return false的作用一般是用来取消默认动作的.比如你单击一个链接除了触发你的"onclick"事件以外还要触发一个默认事件就是执行页面的跳转.所以这时候如果你想取消对象的默认动作就可以return false来阻止它的动作.也就是说如果你想用js代码来局部改变一些数据而不引起页面其他部位的变化,那么你就应该在onclick事件代码的后面加上return false;

    在js中,我们通常用return false来阻止提交表单或者继续执行下面的代码,通俗来说就是阻止执行默认的行为.

    function s1(){

      if(true){

        return false;

      }

    }

    function s2(){

      m();

      n();

      p();

    }

    上面两个例子,函数s1那样写没有问题的,if函数体里返回出去false,终止函数.而在函数s2里,如果我们在m函数里返回一个return false阻止提交,但是这并不影响函数n和函数p的执行.在s2函数里调用函数m,那里面的return false对于函数s2来说,只是相当于返回值,并不能阻止函数s2的执行.return false只在当前函数有效,并不会影响其他外部函数的执行.

    总结:

    return true;返回正常的处理结果.

    return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为.

    return;把控制权返回给页面.

     

    2.通常函数经过一系列的处理后需要给外部返回一个值,这个值一般用return返回出去,也可以是说return是向函数返回返回值,并终止函数的运行.

    关于return,要注意的是在函数里return后面的内容是不再执行的.

    function a(){

      return 10;

      document.write(50);//不执行

    }

    a();//10

    上面的例子中,"return 10;"这个时候函数a的值会等于10,并且函数下面的内容不再执行,因为下面运行函数a时输入10.

    究竟需不需要return来返回值,要看函数是来做什么,如果需要让它返回一个值就写return,如果不需要它返回值,就没必要写它.

    function a(b,c){

      return b+c;

    }

    var abc=a(5,8);

    console.log(abc);//13

    function a(b,c){

      document.write(b+c);

    }

    var abc=a(5,8);//此时页面上会输出13,但其实abc是没有值的

    console.log(abc);//undefined

    当然,js中的return不一定非得用在函数function中,有时候也可以用来阻止某些动作,比如表单的提交,让表单的提交事件返回false,那表单就不会提交:onsubmit="return false";

    3校验时比较常用

    <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之后遇到一个没输入之后就不再继续检测

     
  • 相关阅读:
    otter安装、使用
    windows下xampp安装rabbitmq的PHP扩展AMQP
    CentOS7下安装RabbitMQ
    CentOS7下开放端口
    CentOS7下安装Redis
    @b.windows.last.use
    Rspec基本语法
    ruby firefox23报错:waiting for evaluate.js load failed
    notepad++上配置ruby执行环境
    cucumber的hooks
  • 原文地址:https://www.cnblogs.com/onesea/p/13259856.html
Copyright © 2020-2023  润新知