DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated on

Paracetamol.js馃拪| #71: Explica este c贸digo JavaScript

Explica este c贸digo JavaScript

const nombre = "Cristian";
nombre = "Fernando";
console.log(nombre)

const persona = {
  id: 1,
  nombre: "Cristian",
};

persona.nombre = "Fernando";
console.log(persona.nombre);
Enter fullscreen mode Exit fullscreen mode

A. Fernando, Fernando
B. Cristian, TypeError
C. Cristian, Fernando
D. TypeError, Fernando

Respuesta en el primer comentario.


Discussion (3)

Collapse
duxtech profile image
Cristian Fernando Author

Respuesta:
D. TypeError, Fernando

Cuando declaramos variables primitivas con const estas deben ser como su nombre lo indica valores contantes, por ende no podemos motificar su valor, si intenamos cambiarlo obtendremos un TypeError.

Lo anterior mencionado no pasa con los objetos, si declaramos un objeto con const luego podemos tranquilamente modificar sus propiedades. 驴Por que pasa esto?

Las variables primitivas tienen asignaci贸n por valor, pero las variables complejas como los objetos tienen asignaci贸n por referencia, entonces cuando se intenta cambiar las propiedades de un objeto declarado con const estamos alterando sus propiedades pero no al objeto en si, en el ejemplo el objeto persona al ser creado reservamos un espacio en memoria que lo almacene, pero no cambiamos dicho espacio, solo sus propiedades.

Haciendo una analog铆a para comprederlo mejor, una persona, yo por ejemplo: Cristian; desde que naci soy Cristian, a medida que paso el tiempo varias cosas cambiaron en mi, aumento mi estatura, ahora uso lentes, mi cabello esta mas largo, etc., pero sigo siendo yo, pueden cambiar mis propiedades pero en el fondo sigo siendo yo.

Collapse
albertogato profile image
Alberto Gato Otero

Ninguna respuesta es correcta, ya que en cualquier caso, el segundo console.log mostrar铆a {id: 1, nombre: 'Fernando'}, no Fernando...

Collapse
duxtech profile image
Cristian Fernando Author

tienes raz贸n, ya arreglo el ejemplo