Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

142
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!