条件运算符内的多个语句

时间:2009-05-16 07:29:06

标签: javascript

HI, 我需要在条件运算符中编写多个语句。

具有条件运算符

的if条件的等价物
var name;
var age;
var passed;

if ( arg == "first" )
{
     name = "John";
     age = "25";
     passed = false;
}
else
{
     name = "Peter";
     age = "29";
     passed = true;
}

4 个答案:

答案 0 :(得分:3)

嗯,你的意思是三元运算符吗?

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

我对embedjs的快速检查表明它或多或少都有效。 但为什么?你为什么需要那个?它有资格成为主要的WTF。

答案 1 :(得分:2)

如果您需要根据布尔条件执行语句,则应该使用if-else。条件运算符实际上是从表达式返回值,而不是执行完整语句。通过使用条件运算符,您可以使代码更难以阅读,并且更加危险。

如果您坚持使用条件运算符,alamar的解决方案似乎非常适合您的需求。但是,我建议您大力评论您的代码。下次你需要修改你的代码时,那个评论可能是花费60秒理解和花费0.6秒来理解之间的区别。

如果您对它进行评论,那么在if-else语句中使用字符较短的条件运算符确实没有带宽节省。

答案 2 :(得分:2)

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的设置,这可能会使您的代码从长远来看更容易维护。

答案 3 :(得分:1)

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

相关问题