Leggibilità di || dichiarazioni

7

Su HTML5 Boilerplate usano questo codice per jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-...

Che cosa è più leggibile:

if (!window.jQuery) document.write(...);

o

window.jQuery || document.write(...);
    
posta Devin G Rhode 10.04.2012 - 05:37
fonte

4 risposte

18

Preferisco

if (!window.jQuery) 
    document.write( -local jQuery- );

perché rende ovvio che document.write () dipende da alcune condizioni. Con la seconda opzione, stai abusando della valutazione di cortocircuito, quindi la maggior parte degli sviluppatori dovrà pensare di più a capire cosa stai facendo.

Generalmente non mi aspetto di vedere il codice che crea output da utilizzare con un operatore booleano come quello.

    
risposta data 10.04.2012 - 05:40
fonte
3

L'istruzione if è una istruzione e come tale non ha un risultato. L'espressione o ha un risultato che viene immediatamente gettato via. Pertanto, l'istruzione if è meno complessa e dovrebbe essere preferita.

    
risposta data 10.04.2012 - 09:26
fonte
1

È un idioma di shell importato in JavaScript (forse attraverso perl dove è anche idiomatico). Se ci si è abituati a un team, questo non interferisce con la leggibilità (alcuni potrebbero persino trovare un miglioramento), ma sono tutt'altro che sicuro che sia conosciuto da persone senza uno sfondo perl o shell.

    
risposta data 10.04.2012 - 09:39
fonte
1

Come per gli altri, penso che la versione if sia più leggibile, di certo non vorrei vedere una logica del genere sparsa per un programma. Detto questo, penso che ci sia un uso idiomatico che è comune in Perl e che personalmente preferisco: quando si verifica un valore di ritorno fatale, ad es. %codice%. Mi sembra un modo chiaro e compatto di esprimerlo che mantenga l'improbabile controllo della logica principale del codice.

    
risposta data 16.01.2013 - 23:15
fonte

Leggi altre domande sui tag