• 深入理解JS中&&和||


      写了这么多JS,才发现JS的语法既是属于C语系的,又与一般C语系的编程语言某些地方有很大区别,其中&&和||就是其中一例。

    C语系中的&&和||

      C语系的&&和||有一个特点,无论你把表达式写的天花乱坠,都会返回一个布尔值。

    1,&&

      两边条件都为true时,结果才为true;

      如果有一个为false,结果就为false;

      当第一个条件为false时,就不再判断后面的条件;

      注意:当数值参与逻辑与运算时,结果为true,那么会返回的会是第二个为真的值;如果结果为false,返回的会是第一个为假的值。

    2,||

      只要有一个条件为true时,结果就为true;

      当两个条件都为false时,结果才为false;

      当一个条件为true时,后面的条件不再判断;

      注意:当数值参与逻辑或运算时,结果为true,会返回第一个为真的值;如果结果为false,会返回第二个为假的值;

    JS中的&&和||

    1,JS中的&&和||,当出现在条件判断语句中时,例如if,会遵守C语系规则。

    2,JS中的&&和||,当初现在赋值语句中时,例如变量赋值、return结果等,会遵循以下规则:

      表达式a && 表达式b :  计算表达式a(也可以是函数)的运算结果,
                          如果为 True, 执行表达式b(或函数),并返回b的结果;
                          如果为 False,返回a的结果;

      表达式a || 表达式b :   计算表达式a(也可以是函数)的运算结果,
                          如果为 Fasle, 执行表达式b(或函数),并返回b的结果;
                          如果为 True,返回a的结果;

    例1:

    1 let b, c, d;
    2 b = true || 0;//b=true;
    3 c = false || 0;//c=0;
    4 d = 1 || 0;//d=1;

    例2:

    1 //将数组中布尔值为false的成员转为0
    2 Array.from([1, , 2, , 3], (n) => n || 0)
    3 // [1, 0, 2, 0, 3]
  • 相关阅读:
    Google 嘘! 嘘!
    zabbix fast
    zabbix
    kernel update
    列表推导
    Ddos 反射性防护 simple
    file cycle
    Scala
    Hadoop
    数据库
  • 原文地址:https://www.cnblogs.com/guanghe/p/11157201.html
Copyright © 2020-2023  润新知