zoukankan      html  css  js  c++  java
  • &&和||返回值问题

       首先要知道&&和||是什么。&&是并运算符,一般用于判断语句如:
     

    1. if (a && b){
       
    2. //当a和b为真时执行
       
    3. }

          也许有人会说那  a && b  这个东西返回了true ! 那么这对么?显示是错误的,我们运行以下代码:

    1. alert( 'a' && 'b' )   //弹出 b

         看,弹出了 b  。因此我们可以知道  'a' && 'b' 这个运算的结果就是 'b' 。那有人要问那怎么解释第一个if 语句呢。我们先不关心这个问题,继续看||运算符。


     

    1. alert( 'a' || undefined )   //弹出 'a'
       
    2. alert( undefined || 'b' )   //弹出'b'
       
    3. alert( 'a' || 'b' )              //弹出 'a'

         总结第三个代码 我们发现,|| 返回了一个可以转为true的值。就是这里了。

           && 是并运算符,首先检查 左边,如果左边的值转成布尔类型后为假那就返回左值,如果左边值转成布尔类型后为真那继续较验右边值,如果右边值转成布尔类型后为假则返回右边值。如果如右边值为真是也返回右边值。

         ||  是或运算符,如果左边为真是直接返回左边值,如果左边转成布尔类型后为假时返回右边值。

         所以 && 和 || 返回的值不是true也不是false。而是将参加运算县且符合运算逻辑的值返回。

         所以有这样的赋值语句:   

    1. a = a || {}

        当 a 未定义或定义未赋值或赋值转为布尔类型为假时给a赋值空对象。

     

    原文见我博客:http://www.xdarui.com/articles/46.shtml

  • 相关阅读:
    ASP.NET MVC 以Stream 下载文件
    ITextSharp 初次接触
    Easyui中tree组件实现搜索定位功能及展开节点定位
    lodop 打印控件的使用
    XML IList<T> TO DataSet TO DataTable 相互转换
    JSONToObejct 问题 part 1
    可以动态添加图片的轮播插件
    防止机器注册
    sqlServer 取每组的前几条数据
    log4net 动态设定日志文件名
  • 原文地址:https://www.cnblogs.com/darrel/p/2085403.html
Copyright © 2011-2022 走看看