Inmutabilidad de Strings y Almacenamiento en Memoria

Clase 9 de 29Curso de Estructuras de Datos con JavaScript

Resumen

Comprender cómo funcionan los strings en JavaScript te ayuda a escribir código más claro y eficiente. Aquí verás por qué los strings son inmutables, cómo se guardan en memoria como si fueran un array y qué implica al intentar “modificarlos”. Además, se anticipa el paso a hash tables, una estructura clave que verás a continuación.

¿Cómo se guardan los strings en memoria en JavaScript?

Los strings no son una estructura de datos como tal, pero la forma en que se almacenan en memoria se comporta “como si lo fueran”. En muchos lenguajes, incluido JavaScript, un string se guarda internamente como un array de caracteres, lo que permite acceder a cada letra por índice.

const saludo = "hola";
  • Se guarda “como un array” de caracteres en memoria.
  • Permite acceder a cada carácter por su índice.
  • Facilita recorrer letras y posiciones sin convertir el tipo.

¿Se accede por índice como en un array?

Sí. Al almacenarse como un array, cada letra ocupa una posición y puede leerse por índice, igual que en una colección ordenada.

  • Acceso directo a letras por posición.
  • Lectura sin necesidad de transformar el string.

¿Qué implica que los strings sean inmutables?

En JavaScript, los strings son inmutables: una vez creado, su valor no cambia. Cualquier “modificación” produce un nuevo string en memoria.

  • No se altera el valor original tras su creación.
  • Para “cambiarlo”, se debe copiar el contenido.
  • Se buscan nuevos memory slots disponibles y se pega el valor con los nuevos elementos.

¿Cómo impacta en rendimiento y diseño?

Este proceso de copiar y reasignar puede costar más tiempo de cómputo, sobre todo si se repite con frecuencia o con valores grandes.

  • Copiar y pegar datos implica trabajo extra para el motor.
  • Puede generar demoras al hacer muchas concatenaciones o cambios repetidos.

¿Qué conceptos y habilidades clave aparecen y qué sigue?

El foco está en entender el modelo de memoria y la inmutabilidad para tomar mejores decisiones al manipular texto. También se adelanta el estudio de hash tables, una estructura más compleja que los arrays.

  • String inmutable: no se puede modificar in place; cualquier cambio crea un nuevo valor.
  • Modelo de memoria: los caracteres se guardan “como un array”, con acceso por índices.
  • Índices: posibilidad de leer letras por posición.
  • Memory slots: espacios donde se pega el nuevo valor tras copiar.
  • Tiempo de cómputo: el proceso de copiar y ubicar nuevos memory slots puede tardar más.
  • Hash tables: próxima estructura de datos mencionada como siguiente paso.

¿Tienes dudas o un ejemplo donde la inmutabilidad te haya sorprendido? Compártelo en comentarios y enriquecemos la explicación juntos.

      Inmutabilidad de Strings y Almacenamiento en Memoria