布尔运算符: 与 或 非

false: 空字符串、0、null、undefined、NaN转boolean值都为false

逻辑或:  如果一个操作数不是布尔值,逻辑或不一定返回布尔值。此时遵循的规则:  (函数参数默认值出现之前用的比较多 )

      a: 如果两个操作数都是对象,则返回第一个

      b:如果第一个操作数求值结果为false,则返回第二个操作数 

逻辑与:如果一个操作数不是布尔值,逻辑与不一定返回布尔值。此时遵循的规则:

      a:如果第一个操作数是对象,则返回第二个操作数

      b:如果第一个操作数对应的boolean值为false,则返回第一个操作数

      c:如果第二个操作数是对象,只有在第一个操作数的boolean为true的时候,才会返回该对象

   

!!  : !可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。

1 var a;
2 if(a!=null&&typeof(a)!=undefined&&a!=''){
3     //a有内容才执行的代码  
4 }
5 
6 // 上面写法等价于  写起来更简洁 
7 if(!!a){
8     //a有内容才执行的代码...  
9 }
原文地址:https://www.cnblogs.com/njqa/p/8870343.html