0

如果您在 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语句可以用作表达式,如果可以,如何?


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

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

4

4 回答 4

3

您可以使用三元运算符:

var a = false ? 123 : true ? 456 : 789;
于 2013-10-22T10:53:34.870 回答
0

有一个功能:

function a(b) //where b is your boolean
{
   if(b)
   {
      return 123;
   }
   else
   {
      return 456;
   }
}
于 2013-10-22T10:55:21.053 回答
0

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

另请参阅带有函数的 JavaScript 三元运算符示例

于 2013-10-22T10:55:35.257 回答
0

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

 
var a=function(){if (false) { return 123; } else if (true) { return 456; } else { return 789; }}
alert(a());
于 2013-10-22T11:09:52.220 回答