El método JavaScript toString(), explicado + ejemplos

Una de las cosas más comunes que querrá hacer con una variable es imprimir una representación de cadena de la misma. Eso es lo que toString() el método es para. Este artículo te explicará cuándo y cómo puedes usarlo.

Conversión a cadenas

Los datos que se muestran en la pantalla de su computadora se muestran con mayor frecuencia como cadenas de texto, independientemente de cómo se almacenaron los datos. Los números, las matrices, los valores booleanos y los objetos tienen representaciones de cadenas que les permiten verse como texto en la pantalla, ya sea para que el usuario los lea o con fines de depuración.

Se utilizan diferentes métodos para convertir valores que no son cadenas en cadenas para mostrar, según el tipo de variable que se convierte en una cadena.

Conversión vs Coerción

Antes de explorar estos métodos, no vale la pena que haya dos formas en que una variable se puede convertir en una cadena, sin el toString() método que se llama directamente.

Conversión de tipo es la conversión explícita de una variable a una cadena:

var myString = String(MyVariable);

Esto se hace llamando explícitamente a String() constructor para crear una nueva variable de cadena a partir del parámetro dado.

Tipo Coerción es la conversión implícita (automática) de una variable a una cadena:

var myString = myVariable + "hello";

La coerción ocurre cuando una variable debe convertirse en una cadena para realizar la tarea dada; en este caso, cuando una variable se une a una cadena (usando + operador), se convertirá automáticamente en una cadena para permitir que se una a "hola".

La coerción es una "característica" de JavaScript que no está presente en muchos otros lenguajes de programación, por lo que algunos programadores optan por utilizar la conversión explícita siempre que sea posible para dejar en claro al lector cómo esperan que sea una variable. tratado.

El toString() Métodos

Independientemente de si se está produciendo una conversión explícita o implícita, toString() Se llama al método de una variable para generar la representación de cadena de la variable. Llamar directamente a toString() el método se ve así:

var myString - myVariable.toString();

Según el tipo de la variable toString() se llama, se espera un comportamiento diferente.

Tipos incorporados de JavaScript

Los tipos integrados de JavaScript (Number, Bigint, String, Object/Array, Boolean) tienen todos sus propios toString() métodos. Así es como se comporta cada uno.

Nota:los tipos nulos e indefinidos no tienen métodos adjuntos.

Variables Numéricas (Number y BigInt)

Llamar a toString() El método de una variable de tipo Número en JavaScript devolverá una representación de cadena del número.

var myNumber = 6.5;
var myString = myNumber.toString(); // "6.5" - a string representation of the provided number

Una base opcional se puede suministrar para especificar la base a utilizar al representar el valor numérico. La raíz debe estar entre 236 .

var myNumber = 5;
var myString = myNumber.toString(2); // "101" - the string representation was generated using the supplied radix of 2

Poder proporcionar la raíz es posible mediante conversión de tipos explícita o implícita, y solo está disponible llamando a toString() método de una variable numérica directamente.

El mismo comportamiento se aplica al tipo de variable BigInt.

Cadenas

Llamar a toString() El método de una variable String hace más o menos lo que cabría esperar:devuelve una copia de la cadena original sin modificar.

var myString = "Hello!";
var myNewString = myString.toString(); // "Hello!"

Valores booleanos

El objeto booleano toString() método devuelve “verdadero”“falso” .

var myBoolean = false;
var myString = myBoolean.toString(); // "false"

Los valores booleanos pueden solo tomar un valor verdadero o falso.

Arreglos

El toString() El método también se puede usar para ver una representación de cadenas de matrices de JavaScript.

var myArray = ['dog', 'fish", 'cat'];
var myString = myArray.toString(); // "dog,fish,cat"

El comportamiento predeterminado de toString() El método en las matrices de JavaScript es devolver cada elemento en la representación de cadena propia de la matriz (como se proporciona llamando a toString() método de cada elemento), separados por una coma.

Fechas

El toString() El método de los objetos de fecha devolverá información sobre los datos y la hora almacenados, incluido el día de la semana, la zona horaria y la fecha/hora completa en una sola cadena.

var myDate = new Date();
var myString = myDate.toString(); // "Mon Feb 07 2022 20:56:24 GMT+1030 (Australian Central Daylight Time)"

Funciones

Las funciones de JavaScript son en sí mismas objetos y tienen sus propias toString() método que devuelve una cadena que contiene el código fuente completo de la función.

function sayHi(){
    console.log('Hi!');
}
var myString = sayHi.toString(); 
// "function sayHi(){
//    console.log('Hi!');
// }"

Objetos/clases personalizados y anulación de toString()

Los objetos de JavaScript también tienen toString() método. Lamentablemente, su implementación predeterminada no es tan útil:

var myObject = {name:'bob'};
var myString = myObject.toString(); // "[object Object]"

Arriba, se declara un objeto genérico y es toString() método llamado. La única información incluida en la cadena generada es “[objeto Objeto]” – diciéndonos que la variable es un objeto de clase Objeto . No es útil, y este es el comportamiento predeterminado para todos objetos:un objeto de clase Fruta tendrá una representación de cadena de “[objeto Fruta]” , por ejemplo.

class Fruit {
    constructor(name) {
        this.name = name
    }
    toString() {
        return this.name;
    }
}

var myFruit = new Fruit('Apple');
var myString = myFruit.toString(); // "Apple"

Sobre una clase de JavaScript llamada Fruit se crea, que acepta un nombre como parámetro. En la declaración de la Fruto clase, una toString() se define el método que devuelve el atributo de nombre de la fruta. Este toString() método anulaciones el predeterminado.

Por lo tanto, en lugar del predeterminado toString() método para objetos de la Fruta clase que devuelve “[objeto fruta]” , se llama la personalizada, devolviendo el nombre de la fruta en sí (en el caso anterior, “Apple” ).