&&(且)与 || (或)这两个逻辑运算符并不会让人陌生,用法有很多。以下是一些总结与心得:

一个大前提,在js逻辑运算中,0(数字0)、”“(空字符串)、null(空值)、false(布尔值false)、undefined(未初始化未定义数据)、NaN(非数字特殊值)都会判为false,其他都为true。

1. ||   逻辑或运算符实例

1||0     // 前面是true 后面是false   返回 1

1||2     //前面是true 后面是true  返回1

0||1    //前面是false 后面是true  返回1

0 || ' '  //前面是false 后面也是false  返回 ' '

以上情况可以总结为:

短路原理----只要或运算符前 一个值为真  后一个值无论真假都 返回的是前一个值 ,而只要前一个值为假 后一个值无论真假都返回后一个值。

实战用法:

a = a || 'defaultValue'  //使a获得初始值 字符串 defaultValue  使代码更严谨,优雅

function getEvent(e){

  var e = e || window.event;  //用于兼容ie浏览器  如果在ie浏览器下  参数值为空 前面的值为false 所以就将全局对象event赋值给e

}

 

2.&&   逻辑且运算符实例

1&&0     // 前面是true 后面是false   返回 0

1&&2     //前面是true 后面是true  返回2

0&&1    //前面是false 后面是true  返回0

0 && ' '  //前面是false 后面也是false  返回0

以上情况可以总结为:

短路原理----只要且运算符前 一个值为真  后一个值无论真假都 返回的是后一个值 ,而只要前一个值为假 后一个值无论真假都返回前一个值。

实战用法:

a && $('body').addclass('active');    //先判断a是否为真 再执行后面的addclass()  

callback && callback()  //先判断回调是否存在 再执行回调 以免报错