Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

290
Vistas
¿Cómo es exactamente pasar por valor y pasar por trabajo de referencia en javascript?

He estado leyendo sobre pasar por valor vs pasar por referencia en javascript y leí que JavaScript siempre pasa por valor, solo con tipos no primitivos, el valor es una dirección en la memoria. Pero, ¿no es este el caso también con los tipos primitivos? ¿Los tipos primitivos no se almacenan también en la memoria y las variables asignadas a ellos también deben señalar su ubicación? Usaré esta tabla para tratar de explicar lo que estoy diciendo.

Variable Dirección Valor
a 0x01 10
b 0x02 10
C 0x03 [1, 2]
d 0x03 [1, 2]

Cuando la variable 'b' se asigna al valor de 'a' (b=a), el valor en la dirección de 'a' (10) se copia y esta copia se coloca en una ubicación diferente en la memoria con la nueva dirección siendo asignado a 'b'?

Cuando d = c, en lugar de hacer una copia del valor en la dirección de 'c', a la variable d se le da la misma dirección que c; ahora ambas apuntan a la misma ubicación en la memoria que almacena la matriz [1, 2 ]?

¿La tabla es exacta o...?

Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando declara variables, el motor de JavaScript les asigna la memoria en dos ubicaciones de memoria: stack y heap .

Los datos estáticos son los datos cuyo tamaño se fija en el momento de la compilación. Los datos estáticos incluyen:

  • Valores primitivos (nulo, indefinido, booleano, número, cadena, símbolo y BigInt)
  • Valores de referencia que hacen referencia a objetos.

Debido a que los datos estáticos tienen un tamaño que no cambia, el motor de JavaScript asigna una cantidad fija de espacio de memoria a los datos estáticos y los almacena en la pila.

Por ejemplo, lo siguiente declara dos variables e inicializa sus valores en una cadena literal y un número:

 let name = 'John'; let age = 25;

Debido a que el nombre y la edad son valores primitivos, el motor de JavaScript almacena estas variables en la pila, como se muestra en la siguiente imagen: ingrese la descripción de la imagen aquí

A diferencia de la pila, JavaScript almacena objetos (y funciones) en el montón. El motor de JavaScript no asigna una cantidad fija de memoria para estos objetos. En cambio, asignará más espacio según sea necesario.

El siguiente ejemplo define las variables de nombre, edad y persona:

 let name = 'John'; let age = 25; let person = { name: 'John', age: 25, };

ingrese la descripción de la imagen aquí

En esta imagen, JavaScript asigna memoria en la pila para las tres variables nombre, edad y persona.

El motor de JavaScript crea un nuevo objeto en la memoria del montón. Además, vincula la variable persona en la memoria de la pila con el objeto en la memoria del montón.

Por eso decimos que la variable persona es una referencia que se refiere a un objeto.

Por favor verifique aquí para más detalles

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda