preloader

Métodos en Tipos Primitivos

JavaScript permite manipular tipos de datos primitivos (como string, number, etc.) como si fueran objetos, proporcionando métodos que pueden ser invocados. Es importante entender las diferencias fundamentales entre tipos primitivos y objetos en el lenguaje.

Primitivo:

Un valor de tipo primitivo. Existen siete tipos primitivos: string, number, bigint, boolean, symbol, null y undefined. Objeto:

Capaz de almacenar múltiples valores como propiedades. Puede ser creado usando {}; por ejemplo: {name: "John", age: 30}. Además, en JavaScript, las funciones también son objetos. Una característica destacada de los objetos es su capacidad para incluir funciones como propiedades:

				
					let john = {
  name: "John",
  sayHi: function() {
    alert("Hi buddy!");
  }
};

john.sayHi(); // Salida: Hi buddy!

				
			
  • JavaScript incorpora muchos objetos integrados, como aquellos para manejar fechas, errores y elementos HTML, cada uno con sus propiedades y métodos específicos.

    Costos Asociados:

    A pesar de sus capacidades, los objetos son más pesados en términos de recursos debido a su estructura interna compleja.

    Primitivos como Objetos:

    El creador de JavaScript enfrentó el desafío de permitir operaciones avanzadas con tipos primitivos como string y number, mientras mantenía su rendimiento óptimo.

    La solución fue ingeniosa:

    • Los primitivos permanecen simples, con un único valor.
    • Se permite el acceso a métodos y propiedades de los tipos primitivos, mediante la creación de envoltorios especiales llamados «object wrappers» (envoltorios de objetos) como String, Number, Boolean, Symbol y BigInt, cada uno con su conjunto único de métodos.

    Por ejemplo, el método str.toUpperCase() convierte un string en mayúsculas:

				
					let str = "Hello";
alert(str.toUpperCase()); // Salida: HELLO

				
			
  • Cuando se llama a str.toUpperCase(), JavaScript crea temporalmente un objeto especial con el valor del string y el método toUpperCase(). Una vez completada la operación, este objeto es eliminado, dejando el primitivo str intacto.

Métodos Específicos:

Cada tipo primitivo tiene métodos específicos; por ejemplo, toFixed(n) en números redondea el número a una precisión específica:

				
					let n = 1.23456;
alert(n.toFixed(2)); // Salida: 1.23

				
			
  • Constructores Internos:

    JavaScript permite crear objetos envoltorios para primitivos usando constructores como new Number(1) o new Boolean(false), aunque esta práctica se desaconseja por razones de rendimiento y claridad de código.

				
					alert(typeof 0); // Salida: "number"
alert(typeof new Number(0)); // Salida: "object"!

				
			
    • Los objetos creados con constructores son evaluados como verdaderos en contextos booleanos, lo que puede conducir a comportamientos inesperados.

    Uso Correcto de Funciones:

    Es recomendable utilizar funciones como String(), Number() y Boolean() sin el operador new para convertir valores a tipos primitivos correspondientes:

				
					let num = Number("123"); // Convierte un string a number

				
			

null y undefined:

Estos dos valores primitivos, null y undefined, no tienen envoltorios de objetos correspondientes y no proporcionan métodos. Cualquier intento de acceder a una propiedad de null o undefined resultará en un error:

				
					alert(null.test); // Error: Cannot read property 'test' of null

				
			

Resumen:

Los tipos primitivos en JavaScript ofrecen métodos útiles a través de objetos temporales, optimizados internamente por los motores de JavaScript para mantener un rendimiento eficiente y rápido en las operaciones cotidianas.

Related Post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *