Javascript 逻辑运算符

2008-04-17 11:56 | 分类 WebDev | By ming | 发表评论 »

javascript的逻辑运算符(按优先级排序):

运算符 用法 描述
非(!) !expr 如果 expr 为真则返回假,否则返回真。
与(&&) expr1 && expr2 如果 expr1 为假则返回之,否则返回 expr2
或(||) expr1 ||
expr2
如果 expr1 为真则返回之,否则返回 expr2

javascript中undefinednull
0""NaNfalse都是无意义的,它们转换为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类型)。
ifwhile等语句中,如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

Tags:

转载请遵循"署名-非商业性使用-相同方式共享" 的创作共用协议。

返回正文

留下评论

(如发言后未显示则有待审核)