806 Stimmen

Wie wandelt man in JavaScript am besten eine Zahl in eine Zeichenkette um?

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:

  1. String(n)

  2. n.toString()

  3. ""+n

  4. n+""

0voto

Peter Chaula Punkte 3074

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.

0voto

ufadiz Punkte 1

Sie können anrufen Number Objekt und rufen dann toString() .

Number.call(null, n).toString()

Sie können diesen Trick für ein anderes natives Javascript-Objekt verwenden.

0voto

roger Punkte 1095

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.

Hier ist der Link zum Lesen .

0voto

Shahaed Punkte 304

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.com

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.

Powered by:

X