1. Al concatenar cadenas en navegadores de versiones inferiores (como IE6, IE7, etc.), usar el método de unión de la matriz es mucho más eficiente que usar el signo + para conectarse (como ['aaa', 'bbb', 'ccc'].join () más eficiente que 'aaa'+'bbb'+'ccc');
2. Matriz:
Pop es más eficiente que shift y push es más eficiente que unshift. Esto es importante para diseñar una estructura de montón binario. Es mejor colocar el elemento más grande o más pequeño al final de la matriz.
3. Es mejor utilizar operaciones de turno al redondear números:
1.1 >> 0;
4. Utilice cantidades directas para crear una matriz y un objeto:
var a = [];
var o = {};
5. No anide demasiados niveles de objetos para reducir las búsquedas de objetos:
No utilice abcde, este método de diseño obtiene el objeto e.
6. El valor clave-valor correspondiente, en comparación con el caso de cambio, el valor-clave correspondiente, más eficiente que el caso de cambio, ha sido probado por varios navegadores. Puede leer el artículo sobre esta comparación, pequeño experimento de JavaScript;
7. Si usa jq, también hay una comparación entre $('xxxx').empty().append('xxxxxxx'); y $('xxxxx').html('xxxxx');, el resultado es $ ('xxxx').empty().append('xxxxxxx'); gana, la dirección del artículo es un pequeño experimento jQuery;
8. Bucle
En JavaScript, podemos usar tres bucles: for (;;), while () y for (in). Entre estos tres bucles, for (in) es extremadamente ineficiente porque necesita consultar la clave hash. lata Debe usarse lo menos posible. Se debe decir que el rendimiento de los bucles for(;;) y while es básicamente equivalente (cuando se usa en el uso diario).
Si una variable de bucle se incrementa o disminuye, no asigne un valor solo a la variable de bucle. Utilice el operador anidado ++ o -- la última vez que se lea.
Si desea comparar con la longitud de la matriz, debe colocar el atributo de longitud de la matriz en una variable local con anticipación para reducir la cantidad de consultas.
9. Variables locales y variables globales
La velocidad de acceso de las variables locales es más rápida que la de las variables globales, porque las variables globales son en realidad miembros del objeto global, mientras que las variables locales se colocan en la pila de la función.
10. No uses Evaluación
Usar eval equivale a llamar nuevamente al motor de interpretación para ejecutar el contenido en tiempo de ejecución, lo que lleva mucho tiempo. En este momento, las plantillas de funciones se pueden implementar utilizando cierres compatibles con JavaScript (para obtener detalles sobre cierres, consulte el contenido relevante sobre programación funcional);
11. Concatenación de cadenas
Si está agregando una cadena, es mejor usar la operación s+=anotherStr en lugar de s=s+anotherStr;
12. Convierta números en cadenas y use "" + 1. Aunque parece un poco feo, de hecho este es el más eficiente en términos de rendimiento:
("" +) > Cadena() > .toString() > nueva Cadena()
En realidad, este artículo es algo similar a la "cantidad directa" a continuación. Intente utilizar operaciones internas que se puedan usar en tiempo de compilación para que sean más rápidas que las operaciones de usuario utilizadas en tiempo de ejecución.
String() es una función interna, por lo que es muy rápida, mientras que .toString() necesita consultar la función en el prototipo, por lo que no es tan rápido. Se usa new String() para devolver una copia exacta;
13. Convierta números de punto flotante en números enteros. Esto es más propenso a errores. A muchas personas les gusta usar parseInt (). De hecho, parseInt () se usa para convertir cadenas en números, no entre números de punto flotante y enteros. Math.floor() o Math.round().
14. Operación transversal de cuerdas
Para realizar operaciones de bucle en cadenas, como reemplazo y búsqueda, se deben usar expresiones regulares, porque la velocidad del bucle de JavaScript en sí es relativamente lenta y la operación de expresiones regulares es una API escrita en lenguaje C y el rendimiento es muy bueno. ;
15. Temporizador
Si su objetivo es código que se ejecuta constantemente, no debe usar setTimeout, sino setInterval. setTimeout necesita restablecer un temporizador cada vez;
Actualizando..., ¡estén atentos!