Incluso pueden guardar un texto en una variable y usarlo como un Array (Por eso se llaman cadenas de caracteres), miren:
Introducción a las estructuras de datos
Todo lo que aprenderás sobre estructuras de datos con JavaScript
¿Qué son las estructuras de datos?
Memoria y cómo se guardan los datos
Arrays y strings
Arrays
Construyendo nuestro Array
Eliminando elementos del Array
Playground: crea tu propia implementación de unshift
Playground: crea tu propia implementación de shift
Strings
Hash Table
Hash Tables
Construyendo una Hash Table
Implementando el método Get
Playground: implementa el metodo Delete
Playground: implementa el método getAllKeys
Linked List
Linked List
Construyendo una Singly Linked List
Agregar nodos a la lista
Agregar nodos intermedios
Doubly Linked List
Stacks
Stacks
Construyendo un Stack
Queues
Queues
Construyendo un Queue
Trees
Trees
Construyendo un Binary Search Tree
Graphs
Graphs
Representando grafos en código
Construyendo un grafo
Cierre
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Las cadenas de texto, conocidas como strings, son parte fundamental en la programación pero, ¿realmente sabes cómo se almacenan en la memoria? Aunque los strings no son, por sí mismos, una estructura de datos, la forma en que se guarda la información en memoria los asemeja a una. En lenguajes como JavaScript, los strings son inmutables, lo que significa que una vez creados no pueden modificarse.
La inmutabilidad de los strings en JavaScript implica que, al crear una cadena de texto, su contenido no puede ser alterado directamente. Si intentaras modificarlo, el proceso involucraría copiar el valor original, buscar espacio de memoria disponible y pegar el nuevo valor ahí. Este procedimiento podría consumir más tiempo, ya que requiere un nuevo cómputo. Considerando que muchas veces el contenido de los strings no cambia, esta característica puede ser, de hecho, muy útil.
Cuando se trata de almacenamiento, los strings se guardan en memoria de una manera similar a los arrays. Por ejemplo, si tienes la constante saludo
con el valor "hola", esto se almacena en memoria de manera que se puede acceder a cada carácter individualmente. Esto significa que saludo[0]
te daría acceso a la letra 'h', saludo[1]
a la 'o', y así sucesivamente.
Conocer que los strings en JavaScript son inmutables y cómo se almacenan en memoria es vital para optimizar el rendimiento de las aplicaciones. Cada vez que "modificamos" un string, en realidad estamos creando uno nuevo, por lo que es crucial ser consciente de las implicaciones que esto puede tener en términos de uso de memoria y tiempo de ejecución. Además, entender estos conceptos te prepara para avanzar con más confianza y solidez hacia estructuras de datos más complejas como las hashtables. ¡Sigue estudiando y mejorando tus habilidades en programación!
Aportes 34
Preguntas 4
Incluso pueden guardar un texto en una variable y usarlo como un Array (Por eso se llaman cadenas de caracteres), miren:
.
Bien, si lo traducimos a español sería algo como “cadena”, sin embargo, su verdadero nombre o traducción es “cadena de caracteres”. si le damos un poco de interpretación a esta traducción podemos deducir que se trata de un carácter ligado a otro y así de forma consecutiva, ¡Sí!, son caracteres singulares que están pegados los unos a los otros y en conjunto forman una cadena, de ahí su nombre string.
.
Para entenderlo mejor, un caracter no es más que un simple símbolo o una simple letra, es decir, la letra “b” sería un caracter.
.
En otros lenguajes como C++ no existe como tal un tipo de dato String, ahí lo más que existe son caracteres, es decir, en C solo puedes guardar un caracter.
.
Esto lleva a que en C, por ejemplo, usemos trucos como declarar un arreglo de caracteres para formar un string, que repito, es básicamente una cadena de caracteres.
.
No le temas a C, claro que igual hay formas más fáciles de implementar strings ahí, simplemente comento esta curiosidad para que sepas por qué lo solemos conocer como “String” 😉
String inmutables se refiere a que una vez definido no lo podemos cambiar
<h4>Apuntes</h4>const saludo = "Hola";
RESUMEN: Los strings son inmutables es decir que una vez definidos no podemos cambiar “letra por letra” si no que tendremos que tomar todos los items y comenzar a realizar la operación deseada también significa mayor esfuerzo de computo
Hice un ‘Hola Mundo’
class MyStrings{
constructor(){
this.length = 0;
this.data = {};
}
push(item){
this.data[this.length] = item;
this.length++;
return this.data;
}
print(){
for(let i = 0; i < this.length; i++){
console.log(this.data[i]);
}
}
}
const myStrings = new MyStrings();
myStrings.push('H');
myStrings.push('o');
myStrings.push('l');
myStrings.push('a');
myStrings.push(' ');
myStrings.push('M');
myStrings.push('u');
myStrings.push('n');
myStrings.push('d');
myStrings.push('o');
myStrings.print();
Les comparto mis notas sobre éste módulo acá 😁.
Al final todo string termina siendo una arreglo de carácteres, basado en esto, podemos recorrer nuestro strings con un loop carácter por carácter.
.
EN JS las cadenas las puedes escribir usando comillas simples o dobles, que se tratan de manera idéntica, si usas la comilla sencilla invertida se vuelve un template literal, que permite evaluar variablkes o expresiones, saludos .)
✨ En JavaScript las cadenas son inmutables.
Los strings no son una estructura de datos perse, pero se pueden comportar como un array, con la diferencia es que un string no es mutable, una vez declarado no se puede modificar dicho valor, se debe crear otra variable, o re asignar el valor.
<h4>Cosas a tener en cuenta</h4>/*Una forma alternativa*/
class MyArray {
constructor() {
this.length = 0;
this.data = {}
}
get(index) {
return data[index];
}
push(item) {
this.data[this.length] = item
this.length++;
return this.data;
}
pop() {
const removeItem = this.data[this.length - 1]
delete this.data[this.length - 1]
this.length--;
return removeItem
}
delete(index) {
const removeItem = this.data[index];
delete this.data[index];
for (const key in this.data) {
if (key < this.length - 1) {
this.data[index] = this.data[this.length - index]
}
}
delete this.data[this.length - 1]
this.length--;
return removeItem
}
unshift(item) {
const newData = {
'0': item
}
for (const key in this.data) {
newData[parseInt(key) + 1] = this.data[key]
}
this.data = { ...newData }
this.length++;
}
shift() {
const removeItem = this.data['0']
delete this.data['0']
const newData = {}
for (const key in this.data) {
newData[key - 1] = this.data[key]
}
this.data = { ...newData }
this.length--;
return removeItem
}
}
const myArray = new MyArray()
myArray.push('Mario')
myArray.push('Diego')
myArray.push('Clara')
console.log(myArray)
// myArray.pop()
// const deleteItem = myArray.delete(1)
myArray.shift('Jesús')
console.log(myArray)
// console.log(deleteItem)
/*Para ejecutarlo, te ubicas en tu directorio y node nombre_de_tu_archivo.js*/
MY NOTES FOR STRINGS 😄
Los strings no es una estructura de datos pero la forma en la que se guarda la información en memoria es como una estructura de datos
const saludo = “Hola”;
Tenemos un string que se esta guardando en una constante llamada saludo
¿Que tipo de estructura crees que tenga cuando se guarde en memoria?
Los strings son inmutables eso quiere decir que cuando generamos un string ya no lo podemos cambiar o manipular.
Y generar un cambio en el string tendría que tomarse los datos ya guardados en unos memory slots
buscar unos memory slots nuevos y pegarlos ahi.
La información de un string en memoria se hace por cada carácter asignándole una posición como si fuese un array.
En una const podemos almacenar un array en el que cada item ocupe un espacio.
0- H
1- o
2- l
3- a
todos los tipos de datos primitivos en JS son inmutables y estos son los siguientes: undefined, string, number, boolean, symbol(), bigIn 2n, y null , y los siguientes que son mutables serian : Arrays[], object{}
const saludo = "Hola";
// Se puede guardar un texto en una variable y usarlo como un Array (Por eso se llaman cadenas de caracteres)
console.log(saludo[0]); // result : H
console.log(saludo[1]); // result : o
console.log(saludo[2]); // result : l
console.log(saludo[3]); // result : a
// !Tener en cuenta que los arreglos son inmutables es decir:
saludo[0] = "B";
// Esperarias que en vez de "Hola" ahora diga "Bola" pero no es así.
// Dificilmente una vez creas un String quieres cambiar el valor de algun caracter.
console.log(saludo); // result : "Hola"
Es inmutable siempre y cuando sea tipo “const”. Un string guardado en una variable tipo let se puede modificar cuantas veces queramos.
Los string son inmutables una vez declarados. Y se almacenan como un array, con una dirección provista por un índice y una información almacenada en data.
Me intriga el hecho de que el nombre de la variable usa mas bytes que la variable misma. Ya que saludo
usa 6 bytes de memoria, mientras que Hola
solo 4…
const saludo = "Hola"
En programación, cuando hablamos de una varible que posee información de texto, decimos que su tipo de dato es string
El objeto String se utiliza para representar y manipular una secuencia de caracteres.
// Definiendo constante
const firstName = 'Cristina';
console.log(firstName[0]);
console.log(firstName[1]);
console.log(firstName[2]);
console.log(firstName[3]);
// Como lo guardaría en memoria
const firstnameArr = ['C', 'r', 'i', 's', 't', 'i', 'n', 'a',];
// Como lo mostraria en pantalla
console.log(firstnameArr.join(''));
Un pequeño ejemplo para modificar strings, la desventaja en este caso es que, al ser una variable de tipo let, solo existirá en la función en la que se declare.
const saludo="Hola";
let saludo2=" a todos!";
saludo2=saludo+saludo2;
for (let i=0;i<saludo2.length;i++){
console.log(`saludo[${i}]: ${saludo2[i]}`);
}
Haber pues supongo que cada caracter ocuparía un slot en memoria
Los Strings al ser un tipo de dato primitivo son inmutables.
Con este pequeño código lo comprobé es cierto.
const string = "No manches lola";
for( let i = 0; i < string.length; i++ ) {
console.log(string[i]);
}```
Podemos comprobar que un string se comporta como array
const str = 'Hola'
for(letter of str) {
console.log(letter)
}
//en consola
H
o
l
a
En C no existe el tipo String como tal, se trabaja a partir de Vectores (arrays) y son declarados de manera estática, por lo que debes estimar o estar seguro de la longitud máxima que tendrá tu cadena.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?