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

139
Vistas
¿Dos o más valores primitivos idénticos en JS comparten la misma ubicación de memoria?

Imaginemos que tenemos el siguiente fragmento de código:

 let a = 10; let b = 10 printNumber(10) function printNumber(num){ console.log(num) }

¿Compartirán los valores primitivos 10 , que se asignan a las variables a y b y también se pasan como argumento a la función printNumber , la misma ubicación de memoria? ¿Será efectivamente solo un valor primitivo 10 almacenado en la memoria que se puede usar en el código fuente un número ilimitado de veces sin la necesidad de inflar la memoria?

about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

No, las variables a y b no comparten la misma ubicación de memoria. Cada variable se almacena en una pila. Entonces transmiten el mismo valor pero no la misma referencia.

Pero, por supuesto, JavaScript accede al valor 10 , en sí mismo, a través de una ubicación de memoria específica, que JavaScript conoce.

about 4 years ago · Santiago Gelvez Denunciar

0

(Descargo de responsabilidad: espero haber entendido la pregunta correctamente)

En su ejemplo, está creando dos variables independientes a, b con el mismo valor 10 : se asignan durante la compilación JIT, por lo que efectivamente obtiene 2 ubicaciones de memoria con variables a, b que coincidentemente tienen el mismo valor. El número original en sí no forma parte del código compilado JIT. Aparte de eso, está creando una función ( printNumber ) con un parámetro ( num ) que se completará durante la compilación JIT con el número (nuevamente, 10) al invocar la función ('pasar el argumento'). Luego, el parámetro tiene un alcance local dentro de la función, y la memoria asignada se recolectará como basura después de salir de la función. Entonces, la huella de memoria de su programa JS no está definida por el uso de constantes (sus valores primitivos), sino por la cantidad de variables que declara (y muchas otras cosas, por supuesto).

Para hacerlo un poco más claro, agregué algunos resultados a su programa junto con algunas mutaciones variables.

 let a = 10 let b = 10 console.log('a init',a) console.log('b init',b) printNumber(10) printNumber(a) printNumber(b) function printNumber(num){ console.log('printNumber - num',num) console.log('printNumber - a',a) a++; num++; } console.log('a exit',a) console.log('b exit',b)

about 4 years ago · Santiago Gelvez 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