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+""
Wir können auch die Zeichenfolge Konstrukteur. Gemäß dieser Benchmark es ist der schnellste Weg, eine Zahl in eine Zeichenkette in Firefox 58 zu konvertieren, auch wenn es langsamer ist als " + num
in dem beliebten Browser Google Chrome.
Ich bin erst kürzlich darauf gestoßen, dass die Methoden 3 und 4 nicht geeignet sind, weil die Saiten kopiert und dann zusammengefügt werden. Für ein kleines Programm ist dieses Problem unbedeutend, aber für jede echte Web-Anwendung diese Aktion, wo wir mit Häufigkeit String-Manipulationen umgehen müssen, kann die Leistung und Lesbarkeit beeinträchtigen.
Es scheint ähnliche Ergebnisse bei der Verwendung von node.js. Ich habe dieses Skript ausgeführt:
let bar;
let foo = ["45","foo"];
console.time('string concat testing');
for (let i = 0; i < 10000000; i++) {
bar = "" + foo;
}
console.timeEnd('string concat testing');
console.time("string obj testing");
for (let i = 0; i < 10000000; i++) {
bar = String(foo);
}
console.timeEnd("string obj testing");
console.time("string both");
for (let i = 0; i < 10000000; i++) {
bar = "" + foo + "";
}
console.timeEnd("string both");
und erhielt die folgenden Ergebnisse:
node testing.js
string concat testing: 2802.542ms
string obj testing: 3374.530ms
string both: 2660.023ms
Jedes Mal, wenn ich es durchführte, waren die Zeiten ähnlich.
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.