Ich habe drei Möglichkeiten gefunden, eine Variable in JavaScript in eine Zeichenkette umzuwandeln.
Ich habe nach diesen drei Optionen im jQuery-Quellcode gesucht, und sie werden alle verwendet.
Ich würde gerne wissen, ob es irgendwelche Unterschiede zwischen ihnen gibt:
value.toString()
String(value)
value + ""
[DEMO][1]
Sie erzeugen alle das gleiche Ergebnis, aber ist eines von ihnen besser als die anderen?
Ich würde sagen, dass das + ""
den Vorteil hat, dass es einige Zeichen einspart, aber das ist kein großer Vorteil, sonst noch etwas?
Sie verhalten sich anders, wenn der "Wert" "null" ist.
null.toString()
gibt einen Fehler aus - Kann die Methode 'toString' von null nicht aufrufenString(null)
liefert - "null"null + ""
gibt auch - "null" zurückSehr ähnlich verhält es sich, wenn value
undefined
ist (siehe jbabey's answer).
Abgesehen davon gibt es einen vernachlässigbaren Leistungsunterschied, über den man sich keine Gedanken machen sollte, es sei denn, man verwendet sie in großen Schleifen.
Es gibt Unterschiede, aber die sind für Ihre Frage wahrscheinlich nicht relevant. Zum Beispiel gibt es den Prototyp toString nicht für undefinierte Variablen, aber Sie können undefinierte Variablen mit den beiden anderen Methoden in eine Zeichenkette umwandeln:
var foo;
var myString1 = String(foo); // "undefined" as a string
var myString2 = foo + ''; // "undefined" as a string
var myString3 = foo.toString(); // throws an exception
Laut [diesem JSPerf-Test] (http://jsperf.com/cast-to-string/2), unterscheiden sie sich in der Geschwindigkeit. Aber wenn Sie sie nicht in großen Mengen verwenden wollen, sollte jeder von ihnen gut funktionieren.
Der Vollständigkeit halber: Wie [asawyer] (https://stackoverflow.com/users/426894/asawyer) bereits erwähnt hat, können Sie auch die Methode .toString()
verwenden.