Jeder sollte wissen, dass es mit JavaScript drei verschiedene Möglichkeiten gibt, Variablen in Strings umzuwandeln. In diesem Artikel werden diese Methoden im Detail vorgestellt und ihre Vor- und Nachteile verglichen. In diesem Artikel werden Ihnen hauptsächlich die drei Methoden zum Konvertieren von Variablen in Zeichenfolgen in Javascript vorgestellt: value.toString (), „“ + value“ und „String(value)“. Wer es braucht, folgt bitte dem Herausgeber, um gemeinsam zu lernen. Ich hoffe, es kann allen helfen.
Die 3 Methoden zum Konvertieren von Variablen in Zeichenfolgen sind wie folgt:
value.toString()
"" + Wert
String(value)
Wenn der Wert null oder undefiniert ist, funktioniert die erste Methode nicht. Und Methode 2 und Methode 3 sind grundsätzlich gleich.
""+Wert: Wert zu einer leeren Zeichenfolge hinzufügen, um sie in eine Zeichenfolge umzuwandeln. Bei dieser Methode handelt es sich tatsächlich um eine etwas undurchsichtige Technik, die es anderen möglicherweise schwer macht, die Absichten des Entwicklers zu verstehen. Dies ist jedoch Ansichtssache und einige Leute bevorzugen diese Methode.
String(value): Diese Methode ist sehr klar: Verwenden Sie die Funktion String(), um den Wert in einen String umzuwandeln. String() hat jedoch zwei unterschiedliche Verwendungszwecke, was insbesondere für Java-Entwickler leicht zu Verwirrung führen kann. Wenn String() als Konstruktor mit dem Operator new verwendet wird, gibt er ein neu erstelltes String-Objekt zurück; wenn String() ohne new-Operator aufgerufen wird, konvertiert es nur den Wert in den ursprünglichen String. Die beiden sind sehr unterschiedlich:
> String("Fundebug") === new String("Fundebug") false > typeof String("Fundebug") 'string' > String("Fundebug") instanceof String false > typeof new String("Fundebug") 'object' > new String("Fundebug") instanceof String true
Tatsächlich ist es nicht so üblich, String() als Konstruktor zu verwenden, also verwenden Sie es einfach zum Konvertieren von Zeichenfolgen.
""Subtile Unterschiede zwischen +value und String(value)
""+value und String(value) können einen Wert in einen String umwandeln. Wie machen sie das? Obwohl ihre Ergebnisse die gleichen sind, unterscheiden sich ihre Methoden geringfügig.
Primitiv in String konvertieren
Beide Methoden verwenden die interne Funktion ToString(), um Primitiv in String umzuwandeln. Die ToString()-Funktion ist in ECMAScript 5.1 (§9.8) definiert, kann jedoch nicht direkt verwendet werden und wird daher als interne Funktion bezeichnet. Die folgende Tabelle zeigt, wie die ToString()-Funktion primitive primitive Typen in Strings konvertiert:
参数 | 结果 |
---|---|
undefined | "undefined" |
null | "null" |
Boolean | "true"或者 "false" |
Number | 将数字转换为字符串,例如: "1.765" |
String | 无需转换 |
Objekt in String konvertieren
Vor der Konvertierung in einen String konvertieren beide Methoden zunächst das Objekt in Primitive. Der Unterschied besteht darin, dass „“+value“ die interne Funktion „ToPrimitive(Number)“ verwendet (außer Datumstyp), während „String(value)“ die interne Funktion „ToPrimitive(String)“ verwendet.
ToPrimitive(Number): Rufen Sie zuerst obj.valueOf auf und geben Sie zurück, wenn das Ergebnis primitiv ist. Andernfalls rufen Sie obj.toString() erneut auf und geben Sie zurück, wenn das Ergebnis primitiv ist .
ToPrimitive(String): Ähnlich wie ToPrimitive(Number), außer dass zuerst obj.toString() und dann obj.valueOf() aufgerufen wird.
Sie können den Unterschied anhand des folgenden Beispiels verstehen. obj lautet wie folgt:
var obj = { valueOf: function() { console.log("valueOf"); return {}; }, toString: function() { console.log("toString"); return {}; } };
Ergebnisse aufrufen:
> "" + obj valueOf toString TypeError: Cannot convert object to primitive value > String(obj) toString valueOf TypeError: Cannot convert object to primitive value
Ihre Ergebnisse sind gleich
""+value unterscheidet sich von String(value), aber wir spüren es selten. Da die meisten Objekte den Standardwert valueOf() verwenden, der das Objekt selbst zurückgibt:
> var x = {} > x.valueOf() === x true
Da der Rückgabewert von valueOf() nicht primitiv ist, überspringt ToPrimitive(Number) valueOf() und kehrt zu toString zurück () Rückgabewert. Auf diese Weise ist der Rückgabewert von ToPrimitive(String) derselbe.
Wenn das Objekt eine Boolesche, Zahlen- oder String-Instanz ist, gibt valueOf() ein Grundelement zurück. Dies bedeutet, dass der Berechnungsprozess der beiden wie folgt ist:
ToPrimitive(Number): valueOf() gibt den primitiven Wert zurück und konvertiert ihn dann mit ToString() in eine Zeichenfolge .
ToPrimitive(String): toString() wandelt den Grundwert über die Funktion ToString() in einen String um.
Es ist ersichtlich, dass der Berechnungsprozess zwar unterschiedlich ist, die Ergebnisse jedoch gleich sind.
Fazit
Welche Methode sollten Sie also wählen? Wenn Sie sicherstellen können, dass der Wert nicht null oder undefiniert ist, verwenden Sie value.toString(). Ansonsten können Sie nur „+value“ und „String(value)“ verwenden, die grundsätzlich gleich sind.
Verwandte Empfehlungen:
Javascript-Einführung in die Methode zum Konvertieren von Variablen in Zeichenfolgen
Das obige ist der detaillierte Inhalt vonJavascript wandelt Variablen in String-Code-Sharing um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!