zoukankan      html  css  js  c++  java
  • 通过alert(1&&2)==2 alert(1||2)==1深入理解逻辑运算符||和&&

    alert(1&&2)==2
    alert(1||2)==1
    

    我们对逻辑与(&&)和逻辑或(||)的认识是
    对于 && 是全真为真
    对于 || 是一真为真
    看到上面的 1&&2 ==2就蒙了
    应该这样计算

    先来说说 ||(逻辑或), 从字面上来说,只有前后都是 false 的时候才返回 false,否则返回 true。

    alert(0||1);//显然,我们知道,前面 0 意味着 false,而后面 1 意味着 true,那么上面的结果应该是 true,而事实返回的结果是 1。
    
    alert(2||1);//前面 2 是 true,后面 1 也是 true,那返回结果又是什么呢?测试结果是 2,继续看:
    
    alert('a'||1);//同样,前面 'a' 是 true,后面 1 也是 true;测试结果是 'a',下面
    
    alert(''||1);//由上,我们知道前面 '' 是 false,后面 1 是 true,而返回结果是 1。再看下面
    
    alert('a'||0);//前面 'a' 是 true,而后面 0 是 false,返回结果是 'a',继续下面
    
    alert('a'||'b');//前面 'a' 是 true,后面 'b'是 false,返回结果是 'a',我们继续下面
    
    alert(''||0);//前面 '' 是 false,后面 0 同样是 false,返回结果是0
    
    alert(0||'');//前面0是false,后面''是false,返回结果是''

    结论:

    1、只要 || 前面为 false,不管 || 后面是 true 还是 false,都返回 || 后面的值。

    2、只要 || 前面为 true,不管 || 后面是 true 还是 false,都返回 || 前面的值。

    下面说说 &&(逻辑与), 从字面上来说,只有前后都是 true 的时候才返回 true,否则返回 false。

    alert(''&&1);//结是返回 '', && 前面 '' 是 false,后面是 1是 true。
    
    alert(''&&0);//结是返回 '', && 前面 '' 是 false,后面是 0 也是 false。
    
    alert('a'&&1);//结是返回 1, && 前面 'a' 是 true,后面是 1 也是 true。
    
    alert('a'&&0);//结是返回 0, && 前面 'a' 是 true,后面是 0 是 false。
    
    alert('a'&&'');//结是返回 '', && 前面 'a' 是 true,后面是 '' 是 false。
    
    alert(0&&'a');//结是返回 0, && 前面 0 是 false,后面是 'a' 是true。
    
    alert(0&&'');//结是返回 0, && 前面 0 是 false,后面是 '' 也是false。

    结论:

    1、只要 && 前面是 false,无论 && 后面是 true 还是 false,结果都将返 && 前面的值;
    2、只要 && 前面是 true,无论 && 后面是 true 还是 false,结果都将返 && 后面的值;

  • 相关阅读:
    golang通知协程退出
    Linux Centos7下安装Elasticsearch
    es
    Laravel 别名 Facades的用法
    SVN使用时遇到的小问题
    http 重定向到 https
    Git-版本回退
    selenium---上传文件(非input标签)
    selenium---生成BeautifulReport报告
    windows搭建ngnix图片服务器
  • 原文地址:https://www.cnblogs.com/ns10086/p/9305460.html
Copyright © 2011-2022 走看看