zoukankan      html  css  js  c++  java
  • js 逻辑运算符规则

    说明:其他数据类型转换为布尔类型的规则: null、undefined、0、NaN、空字符串转换为false,其他转化为 true。

    JavaScript 中有三种逻辑运算符:

    1. 取反 !

    首先把数据转化为布尔值,然后取反,结果为 true 或 false。

    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    
    console.log(!"");   //true
    console.log(!d);    //true
    console.log(!a);    //false
    console.log(!b);    //false
    console.log(!obj);  //false
    </script>

    2. 逻辑与 &&

    JavaScript 中逻辑与和其他语言不太一样,如果第一个操作数是 true(或者能够转为 true),计算结果就是第二个操作数,如果第一个操作数是 false,结果就是 false(短路计算),对于一些特殊数值不遵循以上规则。(个人理解为:如果运算的第一个操作数为true,则返回第二个操作数,反之则返回第一个操作数)

    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    
    console.log(true && 10);            //第一个操作数是true,结果是第二个操作,也就是10
    console.log(false && b);            //第一个操作数是false,结果flase
    console.log(100 && false);          //第一个操作数是100,结果flase
    console.log(undefined && false);    //第一个操作数是undefined,结果undefined
    console.log(NaN && false);          //第一个操作数是NaN,结果NaN
    console.log(null && false);         //第一个操作数是null,结果null
    console.log('' && false);           //第一个操作数是空串,结果空串
    console.log(0 && 100);              //结果是0
    console.log(5 && 100);              //100
    console.log(a && b);                //hello
    console.log(obj && 200);            //200
    </script>

    3. 逻辑或 ||

    如果第一个操作数不是 false,结果就是第一个操作数,否则结果是第二个操作数。如果第一个操作数能够转为 true,结果就是第一个操作数(个人理解为:如果运算的第一个操作数为 true,则返回第一个操作数,反之则返回第二个操作数)

    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    
    console.log(true || 10);        //第一个操作数是true,结果是第一个操作,也就是true
    console.log(false || b);        //第一个操作数是false,结果是第二个操作数b
    console.log(100 || false);      //第一个操作数是100,结果100
    console.log(undefined || 9);    //第一个操作数是undefined转false,结果9
    console.log(NaN || false);      //第一个操作数是NaN转false,结果第二个操作数
    console.log(null || a);         //第一个操作数是null转false,结果a
    console.log('' || false);       //第一个操作数是空串转false,结果第二操作数
    console.log(0 || 100);          //结果是100
    console.log(5 || 100);          //5
    console.log(a || b);            //a
    console.log(obj || 200);        //obj
  • 相关阅读:
    oracle批量更新之使用游标进行分批次更新的5种方式及速度比对
    oracle 两个网络不通的远程数据库如何将一个库中的表数据导入到另一个库中?
    惠星球史上最全攻略,手把手带你飞
    oracle 批量删除表数据的4种方式
    zabbix client安装配置执行
    Neural Networks for Machine Learning by Geoffrey Hinton (4)
    代码坏味道之过长的參数列
    Codeforces Round #313 (Div. 1) Gerald&#39;s Hexagon
    java界面编程(3) ------ 控制布局
    数据结构实验之队列一:排队买饭
  • 原文地址:https://www.cnblogs.com/art-poet/p/12097618.html
Copyright © 2011-2022 走看看