Saltar al contenido

Métodos de primitivas en JavaScript

Introducción a las primitivas y objetos en JavaScript

En el ámbito de JavaScript, es fundamental comprender las primitivas y su interacción con los objetos. Las primitivas son los tipos de datos básicos, que incluyen números, cadenas, booleanos, undefined, null, symbol y bigint. A pesar de su simplicidad, JavaScript permite utilizar estas primitivas de maneras que normalmente se asocian con los objetos.

Qué hace únicas a las primitivas

Las primitivas son únicas por varias razones:

1. Inmutabilidad: Una vez que se crea un valor primitivo, no puede ser alterado. Por ejemplo, al crear una cadena, no puedes cambiar sus caracteres individuales. Cualquier operación que parezca modificar una primitiva en realidad crea una nueva primitiva. Ejemplo:


Output appears here after Run.

2. Eficiencia de memoria: Las primitivas se almacenan directamente en la memoria donde se encuentra la variable. Este almacenamiento directo suele hacer que el acceso a los valores primitivos sea más rápido y eficiente en memoria que el de los objetos. Ejemplo:


javascript
let num = 123; // Stored directly in memory where 'num' is located

3. Simplicidad y velocidad: Las primitivas son directas en su representación, lo que las hace más simples y rápidas de procesar en comparación con los objetos. No tienen la sobrecarga de propiedades y métodos de los objetos. Ejemplo:


javascript
let flag = true; // A simple boolean with no additional properties or methods

Objetos en JavaScript: Un contraste

Los objetos son estructuras más complejas en JavaScript. A diferencia de las primitivas:

  • Mutabilidad: Son mutables y pueden almacenar colecciones de datos.
  • Tipo de referencia: Los objetos son tipos de referencia, almacenados como referencias.
  • Versatilidad: Pueden almacenar funciones, arreglos e incluso otros objetos.

Interacción entre primitivas y objetos

JavaScript trata a las primitivas como objetos al ejecutar métodos o propiedades. Esto se logra mediante "envoltorios de objetos" (object wrappers), que son objetos temporales que permiten que la primitiva se comporte como un objeto.

Envoltorios de objetos: Un vistazo más detallado

Cada primitiva tiene un objeto constructor correspondiente:

  • String para primitivas de tipo cadena.
  • Number para valores numéricos.
  • Boolean para valores booleanos.
  • Symbol para primitivas de tipo symbol.
  • BigInt para números bigint.

Trabajo con métodos de String

Las cadenas, aunque son primitivas, pueden utilizar varios métodos de objetos. Por ejemplo:


Output appears here after Run.

Aquí, toUpperCase() es un método del objeto String que se envuelve temporalmente alrededor de la primitiva de cadena.

Métodos de Number en acción

Los números también tienen métodos que pueden utilizarse de manera similar. Considera el método toFixed():


Output appears here after Run.

Este método redondea el número a la cantidad especificada de decimales. Ten en cuenta que toFixed() devuelve una cadena, no un número.

Trabajo con métodos de Boolean

Los booleanos pueden envolverse con el objeto Boolean para utilizar métodos adicionales. Por ejemplo:


Output appears here after Run.

Aquí, toString() convierte el booleano a su representación en cadena.

Symbol y sus métodos

Los symbols, un tipo de primitiva único en JavaScript, también pueden utilizar métodos del objeto Symbol:


Output appears here after Run.

Esto demuestra el uso de toString() para obtener la representación en cadena del symbol.

BigInt y su funcionalidad

BigInt, diseñado para manejar enteros grandes, puede utilizar métodos del objeto BigInt:


Output appears here after Run.

Aquí, toString() se utiliza para convertir el valor BigInt a una cadena.

Estos ejemplos mejoran la comprensión de cómo los booleanos, symbols y bigints interactúan con los envoltorios de objetos de JavaScript, proporcionando métodos y funcionalidades adicionales.

Cuándo no usar envoltorios de objetos

Aunque JavaScript permite envolver primitivas en objetos, es importante utilizar esta función con prudencia. Evita usar new con primitivas (por ejemplo, new Number(1) o new Boolean(false)). Los objetos envoltorio siempre son truthy (verdaderos), incluso cuando envuelven false, lo que puede provocar resultados inesperados y confusión.

Conversión de primitivas a objetos y viceversa

JavaScript proporciona formas de convertir explícitamente entre primitivas y sus contrapartes de objeto:

  • A primitiva: Usando el método valueOf() en objetos.
  • A objeto: Usando new Object(primitive).

Ejemplo de conversión:


Output appears here after Run.

Resumen

Comprender los matices de las primitivas y su relación con los objetos en JavaScript es esencial para cualquier desarrollador en formación. Este conocimiento no solo aclara los fundamentos del lenguaje, sino que también capacita a los desarrolladores para escribir código más eficiente y efectivo.

Práctica

¿Cuáles de los siguientes métodos son aplicables a los tipos de datos primitivos en JavaScript?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.