Command Palette

Search for a command to run...

Repetición con repeat()

Aprende a repetir strings un número específico de veces usando el método repeat(), con casos de uso prácticos, limitaciones y alternativas modernas.

Lectura: 8 min
Nivel: Principiante

TL;DR - Resumen rápido

  • repeat() repite un string un número específico de veces
  • Devuelve un nuevo string, no modifica el original (inmutabilidad)
  • El valor debe estar entre 0 y 2^28 - 1
  • Valores negativos o no enteros lanzan RangeError
  • Útil para padding, separadores y patrones visuales
  • Antes de ES6 se usaban loops o Array(n+1).join()

Introducción al Método repeat()

El método repeat() fue introducido en ES2015 (ES6) y permite repetir un string un número específico de veces. Antes de su existencia, los desarrolladores debían usar loops o trucos con arrays para lograr el mismo resultado. Este método simplifica significativamente el código y lo hace más legible.

repeat() es especialmente útil para crear strings con patrones repetitivos, generar separadores visuales, implementar padding personalizado y crear efectos visuales en interfaces de usuario. Al ser un método simple pero versátil, tiene aplicaciones en muchos escenarios del desarrollo web moderno.

Rango Válido de Valores

El valor pasado a repeat() debe ser un entero entre 0 y 2^28 - 1 (268,435,455). Valores fuera de este rango, valores negativos o valores no enteros lanzarán un RangeError. Este límite existe para prevenir problemas de memoria y ataques de denegación de servicio.

Uso Básico de repeat()

El método repeat() recibe un solo argumento: el número de veces que quieres repetir el string. Devuelve un nuevo string con el contenido repetido el número especificado de veces. Es importante recordar que el string original no se modifica, ya que los strings en JavaScript son inmutables.

repeat-basico.js
Loading code...

Este ejemplo muestra el uso básico de repeat(). El método repite el string exactamente el número de veces especificado. Cuando usas 0, devuelve un string vacío. El string original permanece inalterado, lo que es consistente con el comportamiento de todos los métodos de strings en JavaScript.

Inmutabilidad de Strings

Los strings en JavaScript son inmutables, lo que significa que no pueden ser modificados después de ser creados. repeat() no modifica el string original, sino que devuelve un NUEVO string con el contenido repetido. Siempre debes asignar el resultado a una variable o usarlo directamente.

Casos de Uso Prácticos

repeat() tiene muchos casos de uso prácticos en el desarrollo web. Desde crear separadores visuales hasta implementar padding personalizado, este método simplifica tareas que antes requerían código más complejo y menos legible.

repeat-casos-uso.js
Loading code...

Este ejemplo muestra varios casos de uso prácticos. Puedes crear separadores visuales como líneas o puntos para mejorar la legibilidad de la salida en consola. También puedes implementar padding personalizado para alinear texto, lo cual es útil para tablas y reportes. Los patrones visuales como bordes o efectos son otra aplicación común.

Casos de Uso Ideales para repeat()

repeat() es ideal para: crear separadores visuales (líneas, guiones), implementar padding personalizado (alinear texto), generar patrones repetitivos (bordes, efectos), crear strings de prueba para testing, y construir strings con formato específico (indentación, tablas).

Los casos de uso más comunes de repeat() incluyen:

  • Crear separadores visuales para mejorar la legibilidad de consolas y logs
  • Implementar padding personalizado para alinear texto en tablas y reportes
  • Generar patrones repetitivos como bordes, líneas o efectos visuales
  • Crear strings de prueba con longitud específica para testing de validaciones
  • Construir strings con formato específico como indentación o estructuras

Casos Especiales

El método repeat() tiene comportamientos específicos con diferentes tipos de valores que es importante conocer. Desde el manejo de valores decimales hasta conversiones automáticas de tipos, estos casos especiales pueden sorprenderte si no los conoces.

casos-especiales.js
Loading code...

Este ejemplo muestra casos especiales importantes. repeat(0) devuelve un string vacío, lo cual es útil para resetear contenido. Los valores decimales se truncan (no redondean): repeat(3.9) produce 3 repeticiones, no 4. Infinity y valores negativos lanzan RangeError. El límite máximo es 2^28 - 1 (268,435,455). Los valores se convierten a número automáticamente: strings numéricos, booleanos, null y undefined se convierten (true=1, false=0, null=0, undefined=0). Repetir un string vacío sigue devolviendo vacío sin importar la cantidad. Los strings multilínea funcionan correctamente, preservando los saltos de línea.

Limitaciones y Errores Comunes

Aunque repeat() es un método simple, tiene limitaciones importantes que debes conocer. El método tiene un rango válido específico para el argumento y lanzará errores si intentas usar valores fuera de ese rango. También hay consideraciones de rendimiento que debes tener en cuenta.

repeat-limitaciones.js
Loading code...

Este ejemplo muestra las limitaciones de repeat(). El método solo acepta enteros no negativos. Valores negativos, valores no enteros (decimales) y valores mayores que 2^28 - 1 lanzan un RangeError. También debes tener cuidado con el rendimiento: repetir strings muy largos muchas veces puede causar problemas de memoria.

Advertencia: RangeError con Valores Inválidos

repeat() lanzará un RangeError si el argumento es negativo, no es un entero, o excede 2^28 - 1. Siempre valida el argumento antes de llamar a repeat() cuando el valor proviene de input del usuario o datos externos.

Advertencia: Problemas de Memoria

Repetir strings muy largos o repetirlos muchas veces puede causar problemas de memoria y rendimiento. Sé especialmente cuidadoso cuando el valor de repetición proviene de input del usuario, ya que valores grandes pueden agotar la memoria del navegador.

Alternativas Modernas

Antes de ES2015, los desarrolladores usaban varias técnicas para repetir strings. Aunque repeat() es la solución moderna y recomendada, es útil conocer estas alternativas por compatibilidad con navegadores antiguos o para entender el código legacy.

repeat-alternativas.js
Loading code...

Este ejemplo muestra alternativas a repeat(). El método Array(n + 1).join() es el truco más común antes de ES6. Los loops con concatenación también funcionan pero son menos eficientes. Para navegadores antiguos, puedes usar un polyfill de repeat() que implemente la misma funcionalidad.

Compatibilidad con Navegadores

repeat() es compatible con todos los navegadores modernos. Si necesitas soportar Internet Explorer 11 o versiones anteriores, usa un polyfill o las alternativas mostradas. Verifica la compatibilidad en caniuse.com antes de usarlo en producción.

Resumen: repeat()

Conceptos principales:

  • repeat() repite un string un número específico de veces
  • Devuelve un nuevo string (strings inmutables)
  • El argumento debe ser un entero entre 0 y 2^28 - 1
  • Valores negativos, no enteros o muy grandes lanzan RangeError
  • Fue introducido en ES2015 (ES6)
  • Útil para padding, separadores y patrones visuales

Mejores prácticas:

  • Usa repeat() para crear separadores visuales y padding
  • Valida el argumento cuando proviene de input del usuario
  • Evita repetir strings muy largos muchas veces (rendimiento)
  • Asigna siempre el resultado a una variable (inmutabilidad)
  • Usa polyfills para navegadores antiguos si es necesario
  • Prefiere repeat() sobre loops o trucos con arrays