• js之运算符(逻辑运算符)


      逻辑运算符通常用于布尔型(逻辑)值。这种情况下,它们返回一个布尔值。它经常和关系运算符一起配合使用。“&&” 、“!”和“ ||” 运算符会返回一个指定操作数的值,因此,这些运算符也用于非布尔值。这时,它们也就会返回一个非布尔型值。

      逻辑与(&&)

        逻辑与是由两个和号(&)表示,有两个操作位数,只有当左右两边都时成立,整个条件才成立.否则就是不成立。它属于一个短路操作,如果第一个条件就可决定结果,那就不用操作第二个条件了。它可以和多个运算符连用,返回第一个布尔值为false的表达式。可以取代if结构,也可以用于回调函数中。

    let i = 1,
     n = 1;
     result1 = (true && i++);//第一个条件成立,操作第二个条件
     resutl2 = (false && ++n);//第一个条件不成立,直接退出
     console.log(i,n);  //2 1 
        <script>
            //左侧为真,返回右侧的值,左侧为假,返回左侧的值 false,undefined,null,0,NaN,
    '' 这些为假其余为真;可以多个连用,返回第一个布尔值为false的表达式的值
    console.log('string' && ''); //'' console.log('string' && 1 + 2);//3 console.log('' && undefined);//'' console.log(false && null);//false console.log(0 && 'string');//0 console.log(NaN && false);//NaN console.log(true && 'string' && undefined && '' && 2); //undefined       </script>
        <script>
            if (a == b) {
               dosomething();
            }//等价于
           a == b && dosomething();
    
           function fn(a){
               if(a){
                  a();
               }
           }//等价于
           function fn(a){
               a && a();
           }
        </script>

      逻辑或(||)

        有两个操作数,只有两个都条件都不成立时,结果才是不成立,否则都是成立的。它也是一种短路操作。也可多个连用,返回第一个布尔值为true的表达式的值,常用于为变量设置默认值。左侧为真,返回左侧的值,左侧为假,返回右侧的值。

    <script>
        //左侧为真,返回左侧的值,左侧为假,返回右侧的值
        console.log("string" || ""); //string
        console.log("string" || "number"); //string
        console.log(undefined || 2); //2
        console.log(NaN || false); //false
    
        console.log("" || undefined || false || 3 || string); //3
    
        let n = 1,
            m = 1,
            result = true || ++n, //true为真,不执行后面的操作
            result = false || --m; //false为假,执行行后面操作
        console.log(n, m); //1 0
    
        //如果没有向参数a中传入值,则将参数设置为空对象
        function fn(a) {
          a = a || {};
        }
    </script>         

      逻辑非(!)

        逻辑非是一个叹号,无论这个值是什么数据类型,使用这个操作符后都会返回一个布尔值。逻辑非操作符会先将它的操作数转换成一个布尔值然后再对其求反。如果同时用两个逻辑非的话那就相当于调用Boolean()方法,负负得正。一般用于控制循环。

        <script>
            console.log(!!NaN); //false
            console.log(!![]);  //true
            console.log(
                !! new Boolean(false)); //true
        </script>

     

     

  • 相关阅读:
    不同长度的数据进行位运算
    Linux的sleep()和usleep()的使用和区别
    linux inode已满解决方法
    Debian 系统修改语言设置成英文
    IIS设置问题
    Ajax实现跨域访问的三种方法
    HTML--备忘点
    C#基础---值类型和引用类型
    dapper.net框架使用随笔
    WebService的搭建,部署,简单应用和实体类结合使用
  • 原文地址:https://www.cnblogs.com/davina123/p/11804751.html
Copyright © 2020-2023  润新知