Curso javascript nivel medio

Referencias a Objetos en JavaScript (Tipos Primitivos y Objetos)

En JavaScript, es importante entender la diferencia entre tipos primitivos y objetos, especialmente cuando se trata de cómo se manejan en la memoria y cómo se pasan entre variables y funciones.

Tipos Primitivos

Los tipos primitivos en JavaScript son los datos más simples y básicos. Estos incluyen:

  • number: Números, como 42 o 3.14.
  • string: Cadenas de texto, como "Hola" o 'Mundo'.
  • boolean: Valores de verdad, true o false.
  • null: Un valor que representa la ausencia intencional de un valor.
  • undefined: Indica que una variable ha sido declarada pero no se le ha asignado un valor.
  • symbol: Un valor único e inmutable, generalmente usado como identificador.
  • bigint: Números enteros grandes.
Características de los Tipos Primitivos
  • Inmutabilidad: Los valores primitivos no pueden cambiar. Si asignas un nuevo valor a una variable que contiene un tipo primitivo, estás creando un nuevo valor, no modificando el existente.
  • Pasaje por valor: Cuando asignas o pasas un tipo primitivo a una variable o función, se copia el valor. No se pasa el valor original, sino una copia de él.

Ejemplo:

1let a = 10;
2let b = a; // Se copia el valor de 'a' en 'b'
3b = 20; // Cambiamos 'b', pero 'a' sigue siendo 10
4console.log(a); // Muestra 10
5console.log(b); // Muestra 20
Salida de Consola!:
10
20

Objetos

Un objeto en JavaScript es más complejo que un tipo primitivo. Puede contener múltiples valores organizados como propiedades y métodos. Los arrays y funciones también son considerados objetos en JavaScript.

Características de los Objetos
  • Mutabilidad: A diferencia de los tipos primitivos, los objetos pueden cambiar. Puedes agregar, modificar o eliminar propiedades de un objeto después de haberlo creado.
  • Pasaje por referencia: Cuando asignas o pasas un objeto a una variable o función, lo que se copia es una referencia al objeto original, no el objeto en sí. Esto significa que si cambias el objeto usando la nueva referencia, el cambio afectará al objeto original.

Ejemplo:

1let objeto1 = { nombre: "Juan" };
2let objeto2 = objeto1; // Ambos apuntan al mismo objeto en la memoria
3objeto2.nombre = "Ana"; // Cambia el nombre a través de 'objeto2'
4console.log(objeto1.nombre); // Muestra "Ana", porque 'objeto1' y 'objeto2' apuntan al mismo objeto
Salida de Consola!:
Ana

Diferencia clave: Pasaje por valor vs. Pasaje por referencia

  • Tipos Primitivos: Se pasan por valor, lo que significa que se hace una copia del valor original. Cambiar la copia no afecta el valor original.
  • Objetos: Se pasan por referencia, lo que significa que la variable contiene una referencia al objeto en la memoria. Cambiar el objeto a través de esta referencia afecta el objeto original.

Resumen

  • Tipos Primitivos: Son simples, inmutables, y se pasan por valor.
  • Objetos: Son complejos, mutables, y se pasan por referencia.
  • Comprender cómo funcionan las referencias es crucial para evitar errores y escribir código eficiente en JavaScript.

Ejemplos:

1// Vamos a entender el uso/funcionamiento de objetos y de tipos primitivos
2// Vamos a ver como se comportan los tipos primitivos
3var a = 10
4var b = a
5console.log(a)
6console.log(b)
7
8a=20
9console.log(a)
10console.log(b)
11
12// Los tipos primitivos se pasan por valor
Salida de Consola!:
10
10
20
10
1var c = {
2    nombre: "Angel"
3}
4var d = c
5console.log(c)
6console.log(d)
7c.nombre = "Paula"
8console.log(c)
9console.log(d)
10// Los objetos se pasan por referencia
Salida de Consola!:
{ nombre: 'Angel' }
{ nombre: 'Angel' }
{ nombre: 'Paula' }
{ nombre: 'Paula' }
  • Loading...
  • Crea una función llamada modificador que acepte un objeto como parámetro.

    El objeto debe tener la propiedad nombre.

    La función debe modificar el objeto recibido y cambiar el valor de la propiedad nombre por "Pedro".

    Loading...