2012-07-10 18 views
5

vedo in alcuni codici javascript che le persone scrivono qualcosa di simile:Javascript TRUE e "true" perché qualcuno usa stringa anziché booleano?

var myVar = "true"; 

//... 

if(myVar == "true") { 
    //... 
}else{ 
    //... 
} 

Perché la gente non usano vero o falso? Per quanto ne so il tipo booleano è ovvio per i browser.

Oppure è solo un codice scadente ... e cerca di non scrivere mai in questo modo.

+3

Avviso: 'true! = 'True'' –

+1

Questo è' true' e 'false' in realtà (minuscolo), ma la tua analisi è corretta: meglio usare i booleani reali anziché le stringhe. –

+1

E 'var myVar =" false "; se l'avviso (myVar) ("O, hai!") 'mostrerà anche l'avviso. –

risposta

5

È solo un codice scadente. Cerca di non scrivere mai in questo modo.

Questo tipo di codice è semplicemente orribile per la manutenzione. Sia lo == (anziché lo ===) sia lo true come stringa.

PS: inoltre, "true" == true // false. Per l'argomento ===, è semplicemente perché true == 1 // true e molti altri hanno lo stesso aspetto.

4

Non dovresti farlo, a meno che non ti aspetti una stringa che contenga true per qualche motivo :). Ma anche in questo caso, usare strict equality (===) sarebbe la scelta giusta.

Nell'esempio di codice che si sta visualizzando, questo è semplicemente un modo terribile di scrivere codice.

+2

In questo caso dovresti usare l'uguaglianza rigorosa per rendere chiaro a chiunque legga il codice. –

+0

@Matt Grazie, hai ragione. – kapa

1

È solo un codice scadente, come dici tu.

Uno sviluppatore "reale" non scrive mai if (condition == true), ma solo if (condition)

potrebbe anche essere scritto if (true == condition). Questo è chiamato stile Yoda ed è progettato per impedire l'assegnazione indesiderata di variabili se si scrive erroneamente = anziché ==.

+3

Se si parla di sviluppatori "reali", menzionare '===' varrebbe la pena quando si testava 'true' :). – kapa

+1

concordato. Lo faccio particolarmente in PHP quando collaudo per i guasti. – Cyrille

Problemi correlati