2013-05-20 11 views
5

Stavo navigando sul Web in cerca di una notazione JavaScript stenografica per un'istruzione if. SOLO il se, non il contrario. La mia domanda: esiste? ad esempio:Javascript se notazione breve

(i === 0) ? onlyMyTrueValue; 

L'unico frammento mi sembra di trovare è questo:

(i === 0) ? myTrueValue : myFalseValue; 
+3

Valutazione del cortocircuito di Google. –

+2

Il modo di scrivere in modo sintetico un'istruzione 'if' è' if (i === 0) somevar = someval; 'ma si dovrebbe lasciare che un minifier JS lo gestisca. – zzzzBov

risposta

14

si può fare:

(i === 0) && onlyMyTrueValue; 

Il lato destro della dichiarazione di cui sopra eseguirà solo se il lato sinistro passa.

+0

Questa funzione di JavaScript mi ​​ha rovinato così tanto. – ajp15243

+0

Vorrei saperlo, +1 – tymeJV

+0

@ ajp15243 - Non posso negare la mia indulgenza neanche .. ;-) – techfoobar

11

Si potrebbe fare (i === 0) && onlyMyTrueValue;, ma non si dovrebbe, per motivi di leggibilità.

confrontare il vostro originale:

(i === 0) ? onlyMyTrueValue; 

E pianura vecchio se:

if (i === 0) onlyMyTrueValue; 

Questo è solo un carattere più, e un numero identico di caratteri al metodo &&. Vai con la scelta leggibile.

+2

+1 per suggerire che la leggibilità è il re. Anche se trovo una situazione come 'var foo = bar || []; 'è utile per assegnare valori di default se il valore che stai cercando di assegnare (' bar') è qualcosa come 'undefined' o' null' che vuoi filtrare. – ajp15243

+2

La leggibilità è ** la cosa più ** importante quando si legge la ramificazione del codice per il 99,9% delle volte. Il modo di corto circuito è meno leggibile. Se sei preoccupato per le dimensioni del file, esegui prima il codice attraverso il compilatore di chiusura, quindi ridurrà se i cortocircuiti. –

+1

@nathanhayfield Stava solo citando l'OP e confrontandosi con quella ipotetica sintassi. – 1983

Problemi correlati