js布尔操做符小记

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

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

       一,逻辑非对象

        先说说 !, 非是布尔操做符中惟一一个会把全部数据类型转换为布尔类型的。拿几个特殊值为例:效率

          若是操做数为 null,则 !null返回 true变量

          若是操做数为 undefined,则 !undefined 返回true数据类型

          若是操做数为 NaN,则 !NaN 返回trueim

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

      二,逻辑与类型转换

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

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

      三,逻辑或

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

          若是两个操做数都是null/NaN/undefined,则返回null/NaN/undefined

         因此咱们能够利用逻辑或的这一行为,避免给变量赋null/undefined例如 var value = preferredObject  ||  backupObject 

    以前一直觉得 若是不是特殊值得话,布尔操做符都会返回布尔值。果真人丑就要多读书。 

相关文章
相关标签/搜索