Was ist der "beste" Weg, um eine Zahl in eine Zeichenkette zu konvertieren (in Bezug auf die Geschwindigkeit Vorteil, Klarheit Vorteil, Speicher Vorteil, etc) ?
Einige Beispiele:
-
String(n)
-
n.toString()
-
""+n
-
n+""
Was ist der "beste" Weg, um eine Zahl in eine Zeichenkette zu konvertieren (in Bezug auf die Geschwindigkeit Vorteil, Klarheit Vorteil, Speicher Vorteil, etc) ?
Einige Beispiele:
String(n)
n.toString()
""+n
n+""
Wie diese:
var foo = 45;
var bar = '' + foo;
Auch wenn ich das normalerweise aus Bequemlichkeit so mache, scheint es nach 1.000 Wiederholungen so zu sein bei der reinen Geschwindigkeit ist ein Vorteil für .toString()
Siehe Leistungstests hier (nicht von mir, aber gefunden, als ich meine eigenen schreiben wollte): http://jsben.ch/#/ghQYR
Am schnellsten auf der Grundlage des obigen JSPerf-Tests: str = num.toString();
Es ist zu beachten dass der Geschwindigkeitsunterschied nicht übermäßig groß ist, wenn man bedenkt, dass die Umwandlung auf jede beliebige Weise erfolgen kann 1 Million Mal in 0,1 Sekunden .
Aktualisierung: Die Geschwindigkeit scheint je nach Browser sehr unterschiedlich zu sein. In Chrome num + ''
scheint nach diesem Test am schnellsten zu sein http://jsben.ch/#/ghQYR
Update 2: Wiederum basierend auf meinem obigen Test sollte beachtet werden, dass Firefox 20.0.1 die .toString()
etwa 100 Mal langsamer als die '' + num
Probe.
Explizite Konvertierungen sind für jemanden, der die Sprache nicht kennt, sehr klar. Die Verwendung von Typenzwang, wie von anderen vorgeschlagen, führt zu Mehrdeutigkeit, wenn ein Entwickler die Regeln für den Typenzwang nicht kennt. Letzten Endes ist die Zeit des Entwicklers teurer als die CPU-Zeit, daher würde ich für Ersteres auf Kosten von Letzterem optimieren. Das heißt, in diesem Fall ist der Unterschied wahrscheinlich vernachlässigbar, aber wenn nicht, bin ich sicher, es gibt einige anständige JavaScript-Kompressoren, die diese Art von Sache zu optimieren.
Aus den oben genannten Gründen würde ich also zustimmen: n.toString()
o String(n)
. String(n)
ist wahrscheinlich die bessere Wahl, weil sie nicht versagt, wenn n
null oder undefiniert ist.
Im Folgenden sind die Methoden zur Konvertierung einer Integer
à String
in JS.
Die Methoden sind in absteigender Reihenfolge ihrer Leistungsfähigkeit angeordnet.
var num = 1
Methode 1:
num = `${num}`
Methode 2:
num = num + ''
Methode 3:
num = String(num)
Methode 4:
num = num.toString()
Anmerkung: Sie können nicht direkt anrufen toString()
auf eine Nummer. 2.toString()
wirft Uncaught SyntaxError: Invalid or unexpected token
.
(Die Ergebnisse des Leistungstests werden wie folgt angegeben @DarckBlezzer in seiner Antwort)
In anderen Antworten wurden bereits andere Möglichkeiten genannt, aber ich bevorzuge diese:
s = `${n}`
Kurz, prägnant, bereits an vielen anderen Stellen verwendet (wenn Sie ein modernes Framework/eine moderne ES-Version verwenden), so dass es mit Sicherheit jeder Programmierer verstehen wird.
Nicht, dass dies (normalerweise) von großer Bedeutung wäre, aber es scheint auch so zu sein unter den schnellsten im Vergleich zu andere Methoden .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.