码迷,mamicode.com
首页 > Web开发 > 详细

js布尔操作符小记

时间:2015-05-11 21:26:39      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

    为了提高学习效率断了下网,没想到这么渣渣网断了之后就连不上了==废话少说,开始正题。

    重新看红皮书,重点记一下布尔操作符。布尔操作符有 !&&||

       一,逻辑非

        先说说 !, 非是布尔操作符中唯一一个会把所有数据类型转换为布尔类型的。拿几个特殊值为例:

          如果操作数为 null,则 !null返回 true

          如果操作数为 undefined,则 !undefined 返回true

          如果操作数为 NaN,则 !NaN 返回true

          有了 逻辑非,就可以用两个!!来判断一个数据类型的布尔值了=.=(表问我怎么突然用这么傲娇的符号)。

      二,逻辑与

        逻辑与是个短路操作,即如果第一个操作符是null/undefined/NaN 那么 就直接返回 null/undefined/NaN 

        如果第一个操作数是对象,则返回第二个操作数。如果两个操作数都是对象,那么返回第二个操作数。(注意,返回操作数不是布尔值!!!!!)。

      三,逻辑或

          如果第一个操作数是对象,则返回第一个操作数。如果第一个操作数求值结果为false,则返回第二个操作数。如果两个操作数是对象则返回第一个操作数。

          如果两个操作数都是null/NaN/undefined,则返回null/NaN/undefined

         所以我们可以利用逻辑或的这一行为,避免给变量赋null/undefined例如 var value = preferredObject  ||  backupObject 

    之前一直以为 如果不是特殊值得话,布尔操作符都会返回布尔值。果然人丑就要多读书。 

js布尔操作符小记

标签:

原文地址:http://www.cnblogs.com/echo-yaonie/p/4495613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!