关于条件运算符和替代语法

如果您喜欢短代码形式,可以使用条件 (?:) 运算符,又称条件表达式。条件运算符允许您将简单的 if..else 语句转换为单行代码。该运算符有助于在实现同一效果的同时减少编写的代码量,但是它往往会使您的 ActionScript 更难以阅读。

下面的条件是用完整形式编写的,检查变量 numTwo 是否大于零,并返回 numOne/numTwo 的结果或字符串 carrot

var numOne:Number = 8;
var numTwo:Number = 5;
if (numTwo > 0) {
  trace(numOne / numTwo); // 1.6
} else {
  trace("carrot");
}

使用条件表达式时,可以用以下格式编写同样的代码:

var numOne:Number = 8;
var numTwo:Number = 0;
trace((numTwo > 0) ? numOne/numTwo : "carrot");

如您所看到的,缩短语句会降低可读性,因此这样做并不好。如果必须使用条件运算符,请在小括号内放入前导条件(在问号 [?] 前)。这有助于增强 ActionScript 的可读性。下面的代码是更具可读性的 ActionScript 的示例:

var numOne:Number;
(numOne >= 5) ? numOne : -numOne;

您可以编写返回布尔值的条件语句,如下例所示:

if (cartArr.length > 0) {
  return true;
} else {
  return false;
}

但是,与前面的代码相比,下例中的 ActionScript 更好:

return (cartArr.length > 0);

第二个代码片断更短,需要计算的表达式更少。它更容易阅读和理解。

编写复杂条件时,使用小括号 [()] 对条件进行组合是恰当的形式。如果不使用小括号,您(或使用 ActionScript 的其他人)就可能会遇到运算符优先错误。有关运算符优先级的详细信息,请参阅关于运算符的优先级和结合律

例如,下面的代码未在条件前后使用小括号:

if (fruit == "apple" && veggie == "leek") {}

下面的代码通过在条件前后添加小括号而具有了恰当的形式:

if ((fruit == "apple") && (veggie == "leek")) {}