很多人都知道||和&&的用法,但是怎样在代码中使用才能提高开发速度?
?? ??首先,我们先看看js中逻辑运算符NOT。
?? ??逻辑 NOT 运算符与 C 和 Java 中的逻辑 NOT 运算符相同,都由感叹号(!)表示??
??????如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:??
??????如果一个运算数是对象,另一个是 Boolean 值,返回该对象。??
??????如果两个运算数都是对象,返回第二个对象。??
??????如果某个运算数是 null,返回 null。??
??????如果某个运算数是 NaN,返回 NaN。??
??????如果某个运算数是 undefined,发生错误。
??????通常,我会在代码中使用双逻辑NOT,即使用!!,这样感觉更清晰一点......
? ????var bFalse = !!false;
????? var sRed = !!("red");?
???? ?var iZero = !!(0);
????? var iThreeFourFive = !!(345);
????? var oObject = new Object;
????? oObject=!!oObject;
???? 上面的返回值分别是:false、true、false、true、true。
???? ||以及&&都遵循一个原则:短路原则--若第一个条件符合判断与否,决定了是否进行下一个判断。
?????只要理解了这个原则,然后结合逻辑运算分NOT,就可以很大的简化一部分js代码。
???? 一、||
????????? 众所周知,||代表“或”,只要其中有一个为true,就返回true。
???????? 在短路原则中,先判断第一个是否为true,若为true,就不用进行第二个判断,对应的结果就是返回第一个的值。
??????????假如第一个不为true,就进行第二个判断,无论第二个是什么样的值,返回第二个的值。
??? 二、&&