C'è qualche differenza significativa trauna riga se vs && in JavaScript
condition && console.log("this may run");
e
if (condition) console.log("this may run);
In caso contrario, che è una pratica migliore?
C'è qualche differenza significativa trauna riga se vs && in JavaScript
condition && console.log("this may run");
e
if (condition) console.log("this may run);
In caso contrario, che è una pratica migliore?
Si dovrebbe usare il secondo.
Il tuo codice dovrebbe dire cosa significa. Questo è ciò che si intende con la scrittura di codice "semantico". Se stai scrivendo una condizione if, allora dovresti usare l'istruzione if
, perché è a questo che serve. Il &&
è, semanticamente, un logico e, che dovrebbe essere utilizzato nei casi in cui si è interessati al valore logico risultante dalla congiunzione logica di due valori.
Scrivere codice semantico, come suggerito da altre risposte, semplifica la scrittura, la comprensione e la manutenzione. Per quanto riguarda questo commento:
Se qualcun altro potrebbe aver bisogno di leggerlo o mantenerlo, quindi utilizzare il secondo.
Ricorda che "sei mesi da adesso" è "qualcun altro".
Ecco alcuni motivo specifico per l'utilizzo di if
quando si intende if
:
Se si desidera aggiungere una clausola else
, si può semplicemente aggiungerlo. Se hai scritto a && b
allora dovrai riscriverlo come a ? b : c
.
Supponendo di aver utilizzato parentesi graffe, come in if (a) { b; }
, è possibile aggiungere facilmente un altro passaggio al corpo, scrivendo if (a) { b; c; }
. Se avessi scritto a && b
, allora dovresti riscriverlo come a && (b, c)
o qualcosa di equivalente; questo non sarà nemmeno possibile in alcuni casi, se c
non può funzionare come espressione.
Alcuni linters (ragionevolmente) si lamentano di a && b
.
Nota che minifiers in genere convertire il vostro secondo esempio nella prima, quindi se il vostro razionale per l'utilizzo &&
è quello di salvare byte, che verranno salvate in ogni caso dal minifier.
Non c'è alcuna differenza in quanto tale, ma si può dire che la prima è la notazione abbreviata di quella successiva.
Suggerisco di utilizzare la condizione successiva, rende il codice più spiegabile, producendo gli stessi risultati e con lo stesso numero di caratteri.
Ma c'è ** una differenza, per definizione, in una varietà di aspetti, con la sola eccezione del comportamento. –
Se solo è possibile mantenere il codice, utilizzare quello desiderato.
Se qualcun altro potrebbe aver bisogno di leggerlo o mantenerlo, quindi utilizzare il secondo.
Correlato: * [Istruzione singola riga 'if' - sintassi ottimale, questa alternativa?] (Http: // stackoverflow.it/questions/8860654/javascript-single-line-if-statement-best-syntax-this-alternative/8860674 # 8860674) * –
È molto raro usare '&&' se non si assegna l'espressione a qualcosa. – Sulthan