代码之家  ›  专栏  ›  技术社区  ›  rahul

条件运算符内有多个语句

  •  0
  • rahul  · 技术社区  · 16 年前

    你好, 我需要在一个条件运算符内编写多个语句。

    条件运算符的if条件的等效值是什么?

    var name;
    var age;
    var passed;
    
    if ( arg == "first" )
    {
         name = "John";
         age = "25";
         passed = false;
    }
    else
    {
         name = "Peter";
         age = "29";
         passed = true;
    }
    
    4 回复  |  直到 16 年前
        1
  •  2
  •   Wesley    16 年前

    如果您处于需要基于布尔条件执行语句的情况下,那么应该真正使用if-else。条件运算符实际上是从表达式返回值,而不是执行完整语句。通过使用条件运算符,可以使代码更难阅读,也更危险地进行调试。

    如果您坚持使用条件运算符,那么Alamar的解决方案似乎非常适合您的需要。但是,我建议您积极地评论您的代码。下次需要修改代码时,该注释可能是花60秒理解和花0.6秒理解之间的差异。

    如果你真的评论它,在使用字符型的较短条件运算符时,与if-else语句相比,没有真正的带宽节省。

        2
  •  3
  •   alamar    16 年前

    嗯,你是说三元运算符吗?

    var passed = arg == "first"
        ? (name = "John", age = "25", false) 
        : (name = "Peter", age = "29", true);
    

    我对embedjs的快速检查显示它或多或少起作用。 但是为什么呢?你为什么需要那个?它将有资格成为一个主要的世贸组织。

        3
  •  2
  •   Community Mohan Dere    8 年前

    javascript支持对象文本-如果您只想实例化一组变量或另一组变量,请尝试如下操作:

    var obj = arg == "first" ? 
                { name : "John", age : "25", passed : false } : 
                { name : "Peter",  age : "29", passed : true };
    

    之后,您可以引用名称、年龄,并将其作为obj.name、obj.age和obj.passed传递。根据您将这三个变量一起使用的频率,您可能希望选择使它们成为一个真正的类。

    相比于 alamar 其解决方案是,这样做没有副作用(超出了obj的设置范围,这可能会使您的代码更容易长期维护。

        4
  •  1
  •   Kim    16 年前

    如果需要作为条件检查的一部分执行多个操作,请考虑为列出的代码创建一个函数,并在需要检查的代码中调用该函数。这将使您的代码保持整洁,并且您的函数可以理解。