可以使用JavaScript“if”语句的值吗?

时间:2013-10-22 10:51:49

标签: javascript if-statement expression

如果您在Firefox的浏览器控制台中输入以下内容,则结果为456

if (false) { 123; } else if (true) { 456; } else { 789; }

如果您调整了true / false组合,那么您也可以获得123789。但是,如果您尝试执行以下操作:

var a = if (false) { 123; } else if (true) { 456; } else { 789; };

你刚收到语法错误。语法错误并不让我感到惊讶,但我想知道if语句的含义是什么,如果不能使用该值,则为if语句。

所以我的问题是:if语句是否可以用作表达式,如果是,如何使用?


编辑:感谢目前为止的回复,但为了绝对清楚,我知道我可以使用函数和/或三元运算符来实现我所描述的,但我特别想知道'返回值'可以使用if语句,即if语句是否可以用作表达式。我要求根据各种条件设置值的替代方法。

(如果{{1}}不能用作表达式,那么为什么Firefox的浏览器控制台会显示上面第一个示例的值?)

4 个答案:

答案 0 :(得分:3)

您可以使用三元运算符:

var a = false ? 123 : true ? 456 : 789;

答案 1 :(得分:0)

取而代之的是:

function a(b) //where b is your boolean
{
   if(b)
   {
      return 123;
   }
   else
   {
      return 456;
   }
}

答案 2 :(得分:0)

使用三元运算符:var x =(true?432:765); //将x设置为432

另见JavaScript ternary operator example with functions

答案 3 :(得分:0)

使用函数而不是直接使用该表达式。然后你还必须返回这些值。

 
var a=function(){if (false) { return 123; } else if (true) { return 456; } else { return 789; }}
alert(a());