2011-12-02 53 views
3

是否有使用ternary邏輯的JS 方式當else「空」短手三元邏輯

true ? console.log(true) :0; // current 

我正在尋找的東西

true ? console.log(true); 
//or 
true ?: console.log(true); 

只是好奇。謝謝!

+0

我不明白這怎麼可能 - 要做到三元,必須有三件事。如果你拿走一個,它是二元的。 –

+0

@PaulButcher我敢說這是Rocket的答案的總和。它是三元的,「第三件事」永遠是空的。拿出來,你會得到兩件事 - 因此,答案是 – Jacksonkr

+0

是的,但是如果沒有三件事情去做,你就不能使用任何三元東西。你上面發佈的是使用三元邏輯的絕對最短的方法。 Rocket的答案根本不使用三元邏輯。 –

回答

6

試試這個:

true && console.log(true); 

這工作,因爲&&使得這種表達成一個布爾值。 JavaScript會嘗試評估它。如果第一個值爲假,則由於短路而沒有任何反應。如果這是真的,那麼它評估第二個(console.log)。

您也可以使用||作爲一個快速的方式在JavaScript中執行empty(如0'' falsey值提防)。

var a = false; 
var b = a || 6; // b will be 6 
+2

現在想一想,這就像'if(true)console.log(true);'但更短。工作很好。 – Jacksonkr