逻辑运算符 && || ! 的一些理解

来源:互联网 发布:福建医科大学网络教育 编辑:程序博客网 时间:2024/06/05 08:31

1. &&的理解

第一层:对两个布尔值进行逻辑“与”操作;
第二次:对两个可以转化成布尔值的操作数进行逻辑“与”操作;
第三层:先计算左操作数,如果结果是假值,则返回这个假值,并不计算右操作数;否则计算右操作数,并将其作为结果返回。
注:基于以上情况,以下两个句子基本等价:

if(a == b) fn();(a == b) && ( fn() );

2. || 的理解

与 && 相对应,只是在计算时,先计算做操作数,如果结果是真值,则返回这个真值,并不计算右操作数;否则计算右操作数,并将其作为结果返回。
注:这种方法常用于给参数提供默认值,比如解决事件event对象兼容时,可以这样:

dom.onclick = function(ev){    var oEvent = ev || event;    ……}

3. !

这个没啥好说的,只是我们可以使用 !!a 取代 Boolean(a)
另外可以使用布尔代数对逻辑代数进行一些化简、转化等操作,如:

!(p && q) === !p || !q;   // true!(p || q) === !p && !q;   // true
0 0
原创粉丝点击