Durante el trabajo, a menudo encuentra el problema de concatenar 2 o más cuerdas en una cadena. Generalmente hay tres formas de lidiar con este tipo de problema en JS. Aquí están la lista de ellos uno por uno y hacen una comparación específica de su desempeño.
El primer método utiliza el conector "+" para conectar la cadena a conectar:
str = "a"; str+= "b";
No hay duda de que este método es el más conveniente y rápido. Si solo conecta menos de 100 cadenas, se recomienda usar este método.
El segundo método utiliza una matriz como intermediario para conectar la cadena con unión:
var arr = new Array (); arr.push (a); arr.push (b); var str = arr.join ("");El sitio web de W3School presenta que este método consume menos recursos que el primero y es más rápido. Más tarde verificaremos si este es el caso a través de experimentos.
El tercer método utiliza propiedades de objeto para conectar cadenas
function stringConnect () {this._str_ = new Array ();} StringConnect.Prototype.append = function (a) {this._str_.push (a);} stringConnect.proTotype.ToString = function () {return this._str_.Join ();} var mystr = new StringConnect; mystr.append ("a"); var str = mystr.ToString ();Use el siguiente código para comparar el rendimiento de los tres métodos y ajustar el número de cadenas de conexión cambiando el valor de C:
var str = ""; var d1, d2; var c = 5000; // número de conexión cadenas // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------- mystr.append ("a"); } str = mystr.ToString (); d2 = nueva fecha (); console.log (d2.gettime ()-d1.gettime ()); // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- Date (); console.log (d2.gettime ()-d1.gettime ()); // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------Ajusté C para ser igual a 5000, 50000, 500000 y 50000000, respectivamente. Cada valor se midió 10 veces respectivamente, y el resultado final fue el siguiente:
C = 5000
Tiempo promedio en milisegundos
El tercer tipo 3 2 2 3 1 2 2 1 1 1 1 1.8
El segundo tipo 1 3 0 3 1 3 4 1 4 2 2.2
El primer tipo 0 0 0 0 0 0 1 1 1 1 1 1 0.5
C = 50000
El tercer tipo 22 12 9 14 12 13 13 13 10 17 13.5
El segundo tipo 8 13 12 8 11 11 8 9 8 9 9.7
El primer tipo 7 12 5 11 10 10 10 13 16 12 10.6
C = 500000
El tercer tipo 104 70 74 69 76 77 69 102 73 73 78.7
El segundo tipo 78 100 99 99 100 98 96 71 94 97 93.2
El primer tipo 90 87 83 85 85 83 84 83 88 86 85.4
C = 5000000
El tercer tipo 651 871 465 444 1012 436 787 449 432 444 599.1
El segundo tipo 568 842 593 747 417 747 719 549 573 563 631.8
El primer tipo 516 279 616 161 466 416 201 495 510 515 417.5
Al contar 5000000, se agregan parámetros aleatorios a la barra de direcciones, lo que debe evitar el impacto del caché. A juzgar por los resultados, el primer método no consume más que los otros dos métodos, y es aún más ventajoso, lo que obviamente es inconsistente con las instrucciones en el manual.
Sistema de prueba: Win 7 buque insignia
Navegador: Chrome 52.0.2739.0 m
El artículo anterior discute brevemente los tres métodos de conexión de cadena y las comparaciones de rendimiento en JS son todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.