关于运算符||的简单问题

时间:2010-06-08 22:00:16

标签: flex operators flash-builder

您好,

我尝试在FlashBuilder(FlexProject)中执行此操作

protected function btn_detail_view_clickHandler(event:MouseEvent):void
        {
            CurrentState="Statistiques" || "PartMarche";
        }

但它不起作用,我想这不是正确的语法,但正确的语法是什么?感谢

PS:我希望当我点击按钮时状态等于“statistiques”或“partMarche”时,当前状态变为Detail视图;)

3 个答案:

答案 0 :(得分:1)

在ECMAScript语言中,||是一个短路运算符,如果它评估为“truthy”值,则返回左侧表达式结果,否则返回右侧表达式结果。非空字符串总是评估为truthy值,因此左侧表达式将始终返回此处。您的示例的等效长手代码是:

if ("Statistiques")
    CurrentState = "Statistiques";
else
    CurrentState = "PartMarche";

这种类型的短路运算符用于在某些情况下将变量的默认值设置为:

CurrentState = PreviousState || "Some string";

在该示例中,如果PreviousState为null或false或为空字符串,则CurrentState将设置为“Some string”。如果PreviousState是类似“其他字符串”的字符串,则CurrentState将设置为“其他字符串”。

答案 1 :(得分:1)

感谢您澄清您想要做的事情。要检查CurrentState是什么,您需要使用if条件进行测试:

    if (CurrentState == "Statistiques" || CurrentState == "PartMarche")
    {
        // Of course, use the actual name of your detail view here
        CurrentState = "DetailView";
    }

答案 2 :(得分:0)

好的,事实上我需要删除.Statistiques,因为该代码适用于所有状态

 click.Statistiques="btn_detail_view_clickHandler(event)"

抱歉,我自己走得太快,而不是完成教程。

你的回答会阻止我提出下一个问题!谢谢;)