1. Minimizar las consultas del DOM: Acceder al DOM es una de las tareas más lentas que puedes realizar en JavaScript. Intenta minimizar la cantidad de veces que consultas el DOM.
2. Utiliza la memoria caché del navegador: Guarda y reutiliza los datos en lugar de buscar, actualizar o recalcular constantemente los mismos datos.
3. Divide el código largo y las tareas pesadas: Utiliza Web Workers para realizar tareas en segundo plano sin afectar la interactividad de la página y también utiliza el concepto de lazy loading para cargar los recursos solo cuando se necesiten.
4. Evita las variables y funciones globales: Las variables y funciones globales pueden ser convenientes, pero también consumen más memoria y son más lentas de acceder que las variables locales.
5. Utiliza la compresión Gzip: Gzip reduce el tamaño de las respuestas HTTP y puede reducir el tiempo de respuesta en hasta un 70%.
6. Utilizar la concatenación y minificación de archivos JavaScript: Esto reduce la cantidad de solicitudes HTTP que tiene que hacer el navegador y reduce el tamaño total de los archivos.
7. No utilices eval(): La función eval() tiene un alto costo de rendimiento ya que interpreta y compila el código en tiempo de ejecución.
8. Prefiere JSON a XML: Si trabajas con APIs, te beneficiarás del hecho de que JSON es mucho más rápido y fácil de analizar que XML.
9. Evita los loops innecesarios: Intenta minimizar la cantidad de loops en tu código, y si puedes, utiliza las funciones nativas de Array como map(), reduce(), filter(), etc.
10. Utilizar el evento delegation: En lugar de tener un oyente de eventos para cada elemento, puedes tener un solo oyente de eventos en un elemento padre que se activará cuando ocurra un evento en cualquier elemento hijo.
11. Emplea el patrón de Closure cuando sea necesario. Evite hacerlo innecesariamente ya que puede llevar a consumo elevado de memoria.