Conversion de tipos en javascript

publicado por: Anonymous

Nota:

La pregunta es amplia, pero por su valor como documentación y como respuesta canónica a muchas preguntas similares, considero que debería dejarse abierta.

Me es frecuente encontrarme en javascript haciendo alguna funcion y convirtiendo varias veces entre tipos de datos para poder usar algun metodo(split(), join(), map()) pues algunos funcionan para Strings, otros para Array, etc. y no son tantos los tipos de datos como la cantidad de formas que hay para convertir entre tipos en este lenguaje, unas mas sencillas que otras, algunas mas rapidas… pero me gustaria una especie de guia para convertir entre los diferentes tipos y de ser posible las mas eficientes:
Si es muy amplia la pregunta estos son los que mas me interesan:

Conversiones:

  1. Number a String
  2. String a Number
  3. Como se convierte a tipos especificos Integer, Float, Double esto me causa dudas en javascript.
  4. Boolean a String
  5. String a Boolean
  6. char a String
  7. String a char

solución

Como han dicho Emeeus y the-breaker, existen muchas pero muchas formas de convertir un valor a otro en javascript, pero ten en cuenta que convertir a tipos especificos en javascript, no funciona como en otros lenguajes de programacion como por ejemplo java, aca en javascript, solo tenemos tres palabras magicas para definir variables, teniendo en cuenta esto, tenemos las siguientes formas de convertir datos:

1.) Number to String

numero.toString();    //Cualquier numero flotante o no flotante tiene este metodo para convertir a cadena de texto.

mas información acerca de toString: https://www.w3schools.com/jsref/jsref_tostring_number.asp

2.) String to Number

parseFloat(str);
parseInt(str);

A las funciones parseFloat y parseInt que se pueden referenciar de manera global porque son propiedad del objeto superglobal window, podemos pasarle una cadena de texto (string) y nos retornaran el numero correspondiente según la función usada.

para mas información acerca de parseFloat y parseInt:

parseFloat
parseInt

3.) Integer, Float y Double

las clases Integer, Float, Double, no son tipos, son clases, algo diferente seria int, float, double, (estos si son tipos), esto en otros lenguajes, ya que por ejemplo en javascript la clase Float no existe, Double mucho menos e Integer tampoco existen en javascript, como se convierten entonces numeros con tipos int, float y double?, respuesta:

En javascript no es necesario convertir a tipos de datos numericos
especificos si el tipo de dato original es un dato de tipo numerico
(Number), esto debido a que para javascript, los tipos int, float y
double son lo mismo, un numero, esto significa que por ese lado nunca
tendrás un error de tipos, OJO esto aplica solo si el dato
original es un numero.

En caso de que el dato original sea una cadena de texto, puedes usar según lo que requieras, las funciones parseFloat o parseInt vistas anteriormente, parseInt es el equivalente a que te devuelva un dato de tipo int o Integer, y parseFloat es el equivalente a que te devuelva SIEMPRE un dato de tipo double, (javascript toma cualquier valor flotante con un tamaño equivalente al de un double), asi el numero no sea muy grande, y como javascript no distingue entre tipos de numeros especificos, para javascript ese ‘double’, puede ser tratado tambien como un ‘float’ tranquilamente.

4.) Boolean to String

Esto es muy sencillo, simplemente usa el metodo toString:

let miBooleano = true;
booleano.toString();   //Output: 'true'

5.) String to Boolean:

para convertir de string a boolean, (cosa que normalmente no es estrictamente necesaria en muchos casos en javascript), javascript no provee una solución, función o metodo directo, por lo que una forma de hacerlo es mediante un operador ternario:

_x000D_

_x000D_

function toStrictBoolean(str){_x000D_
   return str == "true" ? true : false;_x000D_
}_x000D_
_x000D_
console.log(typeof(toStrictBoolean('true')));

_x000D_

_x000D_

_x000D_

6.) char a string y viceversa

Javascript no distingue entre char y string, para javascript un solo caracter:

let char = 'A';

Es lo mismo que una cadena de texto (string):

let string = 'ABCDEFGH lo que sea etc...';

como resultado en javascript no existe conversion de string a char o de char a string, de hecho en javascript nisiquiera existe el tipo char, el char es mas bien representado como tipo string, por lo que no te preocupes por esta conversion.

Extras

Hay otra forma de convertir para el caso de string a int, ojo, solo para convertir de string a int, no funciona viceversa y tampoco devuelve flotantes (siempre devuelve enteros), y es por medio de el operador binario | :

let miVariable = "7.42";

miVariable es un string que contiene el 7.42, ahora probemos una conversion rapida:

miVariable = miVariable | 0;    //El resultado es que ahora es un tipo entero y guarda el valor 7.

aparte esta misma forma se puede usar en vez de usar la función parseInt para convertir numeros flotantes a enteros rapidamente:

_x000D_

_x000D_

let pi = 3.1416;_x000D_
    pi = pi | 0;_x000D_
_x000D_
console.log(pi);

_x000D_

_x000D_

_x000D_

Como ultimo dato, espero no te estuvieras refiriendo a Java cuando hiciste la pregunta, ya que Java y Javascript son lenguajes de programación muy diferentes, si estas preguntas eran realmente dirigidas a java, esta respuesta no es acorde entonces con lo que realmente quisiste preguntar.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *