Si estás usando Javascript es posible que al trabajar con Strings te hayas encontrado en la situación de tener que transformarlos a otros tipos de datos. Afortunadamente para cada tipo de caso hay una forma de hacerlo.

String a Boolean

La forma que recomiendo para convertir los strings a boolean es usando el constructor de Booleans. es decir:

const myVariable = "true";
const boolean = new Boolean(myVariable);

Esta forma me gusta porque el código deja muy claro las intenciones que tiene, sabes que se está transformando en boolean.

Hay gente que usa una forma mucho más corta, pero a mi personalmente no me gusta porque para programadores poco experimentados puede resultar confusa. Consiste en usar el operador de negación dos veces. Como Javascript al negar una variable lo convierte a boolean, lo que haces es volver a negarla para tener su valor correcto:

const myVariable = "true";
const boolean = !!myVariable;

Existe una forma más, la que yo mismo usaba cuando empecé a programar en Javascript, la de usar el operador de igualdad para mirar si corresponde al valor true o false:

const myVariable = "true";
const boolean = myVariable === "true";

Una desventaja que tiene la forma anterior es que solo se comprueba si la variable es literalmente "true", mientras que las formas anteriores comprueban que el valor sea truthy.

Esto de los valores truthy lo uso bastante para cuando solo me interesa saber si la variable no es null o undefined, por ejemplo:

const users = getUsers();
const isUsersLoaded = Boolean(users);

En el caso anterior solo me interesa saber si la variable users tiene cualquier valor, el que sea, por ejemplo para dejar de pintar un spinner o cualquier funcionalidad que se te ocurra.

String a número con y sin decimales

Antes de hacer las transformaciones es bueno saber que en el mundo de la programación, a los números enteros sin decimales se les suele llamar ints (de integers), mientras que los que tienen decimales se les conoce como floats (con coma flotante).

Esto de pasar de string a número se suele hacer bastante en Javascript porque muchas veces la gente pasa los campos numéricos de las APIs en forma de string para que no haya problemas de decimales. O por ejemplo lo típico de querer parsear un número introducido por el usuario en un input de un formulario.

Yo la forma que recomiendo de parseo de string a número es la clásica con parseInt y parseFloat:

const numberString = "123";
const number = parseInt(numberString);
console.log(number);

const floatString = "456.22";
const float = parseFloat(floatString);
console.log(float);

Hay otra forma alternativa de hacer esta transformación usando el constructor de Number, un poco parecido a lo que vimos antes con Boolean:

const numberString = "123";
const number = Number(numberString);
console.log(number);

Esta forma no está mal, queda el código bastante claro, aunque creo que me sigo quedando con lo tradicional de parseInt o parseFloat, cuestión de gustos.

También hay gente que usa una forma abreviada usando el operador de suma delante del string, ejemplo:

const numberString = "123";
const number = +numberString;
console.log(number);

Esto lo he visto frecuentemente, pero no me gusta porque no queda el código tan claro como directamente usar parseInt o parseFloat, se te puede pasar el operador de suma si lees el código rápido.

String a Objetos o Arrays

También se te puede presentar de tener que pasar un string a objeto de Javascript, o incluso Array. Esto puede pasar en respuestas de peticiones a APIs, o por ejemplo porque guardemos estructuras complejas como string en memoria o similar.

const objectString = '{ "user": "Jhon", "surname": "Doe"}' 
const object = JSON.parse(objectString);
console.log(object);

Ojo al detalle, las keys de los objetos en el string van con comillas (en los objetos en Javascript no son necesarias). Esto pasa porque lo que hay dentro de un string en realidad es un JSON y por eso debajo se hace el parseo a objeto usando JSON.parse .

Si se pasa a JSON.parse algo que no es un JSON válido, la función fallará.

Esta técnica también funciona para arrays:

const arrayString = "[1, 2, 3]";
const array = JSON.parse(arrayString);
console.log(array);