2013-10-23 49 views
0

只是問,這個代碼可以寫成三元運算符嗎?這可以寫成三元運算符嗎?

if (foo === "") { 
    bar(1); 
} else { 
    bar(2); 
} 

一行三元代碼:

(foo === "") ? bar(1) : bar(2); 

,如果是,你會怎麼做呢?

+3

爲什麼不'bar(foo ===「」?1:2)'?這樣,人們可以看到我們稱之爲「酒吧」。順便說一句,你的單行調用'foo'而不是'bar'。 – Zeta

+1

是的,我會那樣做。但是你可以簡化它,只需一次調用foo:'bar(foo ===「」?1:2);' –

+1

確定它可以*用三進制寫。 *應該是?也許,但這是主觀的,所以不適合這個網站。 – Jon

回答

3

三元運算符返回一個值。爲了實現這一點,將三元表達式包裝在方法括號中。

bar(foo === "" ? 1: 2); 

雖然要小心。通常情況下,使用簡單的if else結構而不是完整的三元運算符更具可讀性。