使用 &&
与 ||
可以简化代码,提高可读性。比如以下代码:
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 + "/>";
没有评论:
发表评论