Javascript 逻辑运算符
2008-04-17 11:56 | 分类 WebDev | By ming | 发表评论 »
javascript的逻辑运算符(按优先级排序):
| 运算符 | 用法 | 描述 |
|---|---|---|
| 非(!) | !expr | 如果 expr 为真则返回假,否则返回真。 |
| 与(&&) | expr1 && expr2 | 如果 expr1 为假则返回之,否则返回 expr2。 |
| 或(||) |
expr1 || expr2 |
如果 expr1 为真则返回之,否则返回 expr2。 |
javascript中undefined、 null、
0、 "",NaN,false都是无意义的,它们转换为Boolean类型的值都是false,除此之外的值都被认为是有意义的。 这三个逻辑运算符中,逻辑非(!)操作在expr不是Boolean类型的时候,把expr转换为Boolean类型的值,再返回;而逻辑与(&&)和逻辑非(||)操作则不进行转换,直接返回它们的值。 逻辑非操作(!):!expr,如果expr是有意义的,那么转换为Boolean类型的值就为true,那么取反后为false,所以返回false;否则返回true。
逻辑与操作(&&):expr1
&& expr2 &&
expr3 && expr4, 它返回的是=>从第1个开始,遇到无意义的返回,否则(即都为有意义)返回最后一个。
逻辑或操作(||):expr1 || expr2 || expr3 || expr4,它返回的是=>从第1个开始,遇到有意义的返回,否则(都为无意义)返回最后一个。 关于Boolean类型转换,javascript
有Boolean()这个内置的函数,它把任何类型的值都转换为Boolean类型(使用这个函数转换后的数据类型为Object类型)。
在if、while等语句中,如if(condition)、while(condition),都是判断condition是否有意义。
Examples: var a=undefined,b=null,c=0,d='',e=1,f=2,g='a';
| 语句 | 结果 |
|---|---|
| !a !!!a !b !!!b !c !!!c !d !!!d | true (每多一个!号就取反一次) |
| !!a !!b !!c !!d | false |
|
true && false true && true e && a f && b g && a e && f f && g |
false true (左边true取右边) a b a f g |
|
false && true false && false d && a d && b d && e d && g |
false false (左边false取左边) a b e g |
| true || false true || true e || a f || b g || a e || f f || g | true true (左边true取左边) e f g e f |
| false || true false || false a || e a || f a || g a || b a || c | true false (左边false取右边) e f g b c |
|
a || b || c || d ((a || b) || c) || d a || e || b || f ((a || e) || b) || f e || f || g (e || f) || g |
d d e e e e |
|
a && b && c && d ((a && b) && c) && d a && e && b && f ((a && e) && b) && f e && f && g (e && f) && g |
a a a a g g |
|
a && b || c (a && b) || c a || b && c a || (b && c) e && f || g (e && f) || g e || f && g e || (f && g) |
c c b b f f e e |
转载请遵循"署名-非商业性使用-相同方式共享" 的创作共用协议。
留下评论
(如发言后未显示则有待审核)

