使用 && 与 || 可以简化代码,提高可读性。比如以下代码:
var foo:Boolean = true;
var bar:Object = {};
trace(foo && bar); // -> [object Object]
trace(foo || bar); // -> true
&& 与 || 的结果是由运算符的左边的项目(这里是 foo )来决定的。简单地说,规则为:
A && B : 如果 Boolean(A) 为 false 则返回 A,否则返回 B。 A || B : 如果 Boolean(A) 为 true 则返回 A,否则返回 B。
所以实际上并没有进行真正数学意义上的逻辑运算,返回值也不一定是 Boolean 值。
Boolean(A) 的转换规则如下:
Undefiend : false Null : false Boolean : 与转换前相同 Number : 0 或 NaN 为 false 替其他的为 true String : 空串为 false 其他的为 true Object : true
使用逻辑运算符简化代码
使用逻辑运算符可以简化简单的逻辑判断(if)。
//1. 使用 if
if (foo) {
doSomething();
}
if (!bar) {
doSomething2();
}
//2. 使用逻辑运算符
foo && doSomething();
bar || doSomething2();
多重 if 的写法:
//1. 使用 if
if (foo) {
if (bar) {
sayHello();
}
}
//2. 使用 if 与逻辑运算符
if (foo && bar) {
sayHello();
}
//3. 只使用逻辑运算符
foo && bar && sayHello();
虽然 else 也可以实现,但代码有可能变得难一閲读。
&&= 与 ||=
在需要代入结果时,使用 &&= 与 ||= 更方便。
//1. 使用 if
if (foo) {
foo = "<" + foo + "/>";
}
//2. 使用逻辑运算
foo &&= "<" + foo + "/>";
![[Google]](http://www.google.com/logos/Logo_25wht.gif)
![[Synchronous Space]](http://weihe924stephen.googlepages.com/syncspace-banner.jpg)
![[Creative Commons License]](http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)
![[Add to Google]](http://buttons.googlesyndication.com/fusion/add.gif)
![[Aggregated by MXNA]](http://weblogs.macromedia.com/mxna/images/mxna88x31.gif)
![[Flex.org]](http://www.flex.org/images/flexorg.gif)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](http://validator.w3.org/feed/images/valid-atom.png)
![Validate my RSS feed [Valid RSS]](http://resource.googlecode.com/files/valid-rss.png)
![[I heart FeedBurner]](http://www.feedburner.com/fb/images/pub/i_heart_fb.gif)
没有评论:
发表评论