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

    第一个操作数 第二个操作数 结果
    true

    true 

    true
    true false false
    false true false
    false false

    false

     

     

     

     

     

     

    一:and(&&)与逻辑运算符

    注:如果两边的操作数有一个不是布尔值,与运算就不一定返回布尔值,此时遵循一下规则:

    var box={} && (5>4);     //true,第一个为对象,返回第二个操作数
    var box=(5>4) &&{};            //[object Object],第二个操作数是对象,则第一个操作数返回true,才返回第二个操作数,否则返回false
    var box=(3>4) &&{};            //false
    var box=(5>4) && null       //null,有一个操作数为null,返回null
    var box=(5>4) && undefined  //undefined

    重要:如果第一个操作数为false,那么后面不管是什么都返回false

     

    第一个操作数 第二个操作数 结果
    true true true
    true false true
    false true true
    false false false

     

     

     

     

     

    二:或(||)与逻辑运算

    注:如果两边有一个不是布尔值,遵守一下规则:

    var box={}||(5>3);       //[object Object],第一个操作数为对象,返回第一个
    var box=(5>3)||{};       //true
    var box={}||{};         //[object Object],如果两个都是对象,返回第一个对象
    var box=null||null         //null,两个为null,返回null
    var box=NaN || NaN         //NaN,两个都是NaN,返回NaN
    var box=undefined || undefined //undefined,两个为undefined,返回undefined
    var box=true||age          //true,age未定义,第一个为真,返回真
    var box=false ||age        //出错,age未定义

         便利贴:我们可以利用逻辑或运算符这一特性避免为变量赋值null或undefined值

    三: 逻辑取反 (!)

    var box=!(5>4)    //false
    var box=!{}            //false,操作数是一个对象返回false
    var box=!''            //true,操作数为空字符串返回true
    var box=!'lee';        //false,非空字符串返回false
    var box=!0;            //true,为0时返回true
    var box=!8;            //false,非0数值包括Infinity,返回false
    var box=!null       //true,null返回true
    var box=!NaN;        //true
    var box=!undefined;    //true
    这个人比较懒,笔记也粗糙。没得救了。
  • 相关阅读:
    20 行代码:Serverless 架构下用 Python 轻松搞定图像分类
    Serverless 的内存配置与超时时间
    Serverless 架构与事件规范
    如何用 Serverless 优雅地给网站图片加水印
    修改rpmbuild构建目录的位置
    rpmbuild之构建目录结构解析
    全量编译与增量编译
    c堆排序的实现
    c优先队列的实现
    c栈的实现
  • 原文地址:https://www.cnblogs.com/xiaoxinzi/p/8485308.html
Copyright © 2011-2022 走看看