zoukankan      html  css  js  c++  java
  • 深入理解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]
  • 相关阅读:
    lambda函数
    linux 自学系列:wc命令
    linux 自学系列:chmod 权限操作
    linux 自学系列:创建、删除目录、移动、更名文件或目录
    linux 自学系列:vi、vim编辑工具
    《架构之美》学习随笔:设计第一步
    安装memcache 时提示error while loading shared libraries: libevent2.0解决办法
    《架构之美》学习随笔:保证质量
    linux 自学系列:环境变量设置
    logging模块学习笔记:logger 对象、日志等级
  • 原文地址:https://www.cnblogs.com/guanghe/p/11157201.html
Copyright © 2011-2022 走看看