2015-07-01 3 views
23

zu konvertieren Ich habe eine Variable. Nennen wir es toto.Sauberste Weise, zum boolean

Diese toto kann auf undefined, null, eine Zeichenfolge oder ein Objekt festgelegt werden.

würde ich die sauberste Art, wie zu überprüfen, ob toto auf einen Datensatz, der in einer Zeichenfolge oder ein Objekt gesetzt Mittel und weder undefined noch null und stelle in einer anderen Variablen booleschen Wert entsprechen.

Ich dachte an die Syntax !!, die wie folgt aussehen:

var tata = !!toto; // tata would be set to true or false, whatever toto is. 

Der erste ! würde false gesetzt werden, wenn toto undefined oder null und true sonst, und die zweite, es würde invertieren.

Aber es sieht ein bisschen gruselig aus ... Gibt es also einen besseren/saubereren Weg?

Ich schaute bereits this question, aber ich möchte einen Wert in einer Variablen, nicht nur überprüfen Sie es in einer if Aussage.

+3

Diese Frage als Duplikat markiert ist, aber wenn Sie Schau dir die andere Frage http://stackoverflow.com/questions/263965/how-can-i-convert-a-string-to-boolean-in-javascript es ist ganz anders; sie sind überhaupt keine Duplikate. – Sam

+0

@Sam Sorry, aber ich habe mir dieses Duplikat bestätigt, ich wusste nichts von dieser anderen Frage, aber es hat mein Problem gelöst. – Aracthor

+2

@Aracthor Es ist kein Duplikat, weil http://stackoverflow.com/questions/263965/how-can-i-convert-a-string-to-boolean-in-javascript über das Konvertieren einer Zeichenfolge, die nur die Wörter enthält, ist " true "und" false "zu ihren Booleschen Gegenstücken. In dieser Frage geht es darum, jede Variable in einen Booleschen Wert umzuwandeln, je nachdem, ob es truthy oder falsy ist. –

Antwort

43

Ja, können Sie immer verwenden:

var tata = Boolean(toto); 

Und hier sind einige Tests:

for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) { 
    console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`); 
} 

Ergebnisse:

Boolean(number 0) is false 
Boolean(number 1) is true 
Boolean(number -1) is true 
Boolean(string 0) is true 
Boolean(string 1) is true 
Boolean(string cat) is true 
Boolean(boolean true) is true 
Boolean(boolean false) is false 
Boolean(undefined undefined) is false 
Boolean(object null) is false 
+21

Beachten Sie, dass Boolean ("false") wahr ist, wenn Sie wahrscheinlich wollen, dass es falsch ist. –

+7

Warum in aller Welt möchten Sie String "false" als falsch bezeichnen? Sogar php macht das nicht: D – Danon

+0

@NoahDavid Ich habe nicht bekommen, was Sie sagen wollen. Ich habe einfach den Code 'Boolean (false)' in der Developer Tool Console ausgeführt und es gibt 'false' zurück. In welchem ​​Zusammenhang wird es "wahr" zurückgeben? – RBT

Verwandte Themen