2013-10-22 34 views
0

如果您輸入以下爲Firefox的瀏覽器控制檯,其結果是456是否可以使用JavaScript的「if」語句的值?

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不能用作表達式,那麼爲什麼Firefox的瀏覽器控制檯顯示上述第一個例子中的值?)

+0

其他部分在你的第二種情況下是無法訪問的 – Shadow

+0

是的,我意識到謝謝 - 這些只是例子! –

回答

3

您可以使用三元運算符:

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

謝謝,我通常會使用三元運算符,但我的問題特別是關於'if'語句。 –

0

有作爲函數:

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

使用功能,而不是直接使用的表達。然後你也必須返回這些值。


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