日期:2014-05-16  浏览次数:20338 次

javascript技巧系列一:js中使用||以及&&
?? JS之||以及&&的用法??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?? ??在工作中,为了提高开发效率以及提高代码的质量,在js中不可避免的会使用到||和&&
很多人都知道||和&&的用法,但是怎样在代码中使用才能提高开发速度?
?? ??首先,我们先看看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,就进行第二个判断,无论第二个是什么样的值,返回第二个的值。

??? 二、&&