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,结果都将返 && 后面的值;

  • 相关阅读:
    FileManager(文件管理类)
    XE6 IntraWeb.v14.0.32安装及破解指南
    在应收应付系统凭证做冲销后,如何取消冲销?
    delphi将图片保存到SQL数据库和读取图片
    去掉cxgrid 中的过滤下拉箭头
    CxGrid 分组以后自动排序了,可以禁止自动排序吗
    最简单解决CHM文件无法显示的办法
    用友T3、T6常见问题
    SQL2005还原数据库3154错误
    cxGrid 怎样才能让不自动换行 WordWrap:=false
  • 原文地址:https://www.cnblogs.com/ns10086/p/9305460.html
Copyright © 2011-2022 走看看