• JS基础逻辑运算符


    逻辑运算符对操作数进行布尔运算,经常和关系运算符配合使用,逻辑运算符分为逻辑非!、逻辑与&&和逻辑或||,可以应用于任何数据类型

    逻辑非

    逻辑非用!表示,它会先把操作数转为布尔值,然后再取反。如果同时使用两个逻辑非操作符,则相当于使用Boolean()转型函数。

    !!'a'; // true
    !!'';  // false
    
    !!1;   // true
    !!0;   // false
    
    !!true;  // true
    !!false;  // false
    
    !!null;  // false
    !!undefined; // false
    !!NaN; // false
    
    !!{}; // true
    !![]; // true
    

    逻辑与

    逻辑与用两个和号&&表示,要两个操作数,当操作数都为true时返回true,否则返回false。

    逻辑与可以应用于任何数据类型,当操作数不是布尔值时,返回结果也不一定是布尔值。

    逻辑与属于短路操作,如果第一个操作数能决定结果,则不对第二个操作数求值。

    逻辑与运算求值过程,如果第一个操作数是false,结果返回第一个操作数;如果第一个操作数是true,无论第二个操作数是true还是false,返回第二个操作数。

    
    '' && 'a'; // ''
    
    'a' && 'b'; // 'b' 
    'a' && ''; // ''
    
    

    逻辑与运算符可以连用,返回第一个布尔值为false的表达式

    'a' && 'b' && null && ''; // null
    

    关系运算符的优先级高于逻辑与和逻辑或,所以关系表达式可以不加圆括号。

    if( a==2 && b==3) {
    	// todo
    }
    

    应用一:代替if语句

    if(a === b) {
    	do()
    }
    
    // 等价于
    
    (a === b) && do()
    

    应用二:用于回调函数

    function fn(cb) {
      if(cb) {
       cb()
      }
    }
    // 等价于
    
    function fn(cb) {
      cb && cb()
    }
    
    

    逻辑或

    逻辑或运算用||表示,要两个操作数,当两个操作数有都为false时返回false,否则返回true

    逻辑或也可以应用于任何数据类型,当操作数不是布尔值时,返回结果也不一定是布尔值。

    逻辑或也属于短路操作,如果第一个操作数能决定结果,则不对第二个操作数求值。

    逻辑或运算求值过程,如果第一个操作数是true,结果返回第一个操作数;如果第一个操作数是false,无论第二个操作数是true还是false,返回第二个操作数。

    
    '' || 'a'; // 'a'
    
    'a' || 'b'; // 'a' 
    'a' || ''; // 'a'
    
    

    逻辑或运算符可以连用,返回第一个布尔值为true的表达式

    'a' || 'b' || null || ''; // 'a'
    

    应用:为变量设置默认值

    function fn(a) {
      var b = a || '' 
    }
    
    优秀文章首发于聚享小站,欢迎关注!
  • 相关阅读:
    快速提取某一文件夹下所有文件名称
    CFileFind类的使用总结
    FILE文件流的中fopen、fread、fseek、fclose的使用
    经典损失函数:交叉熵(附tensorflow)
    tensorboard使用
    Windows下 tensorboard出现ValueError:Invalid format string
    新建全色或者resize(毫无价值,只是做记录)
    创建一个任意大小的全色矩阵 python
    转移图片位置
    getpatch
  • 原文地址:https://www.cnblogs.com/yesyes/p/15351356.html
Copyright © 2020-2023  润新知