Cómo usar typeof para validar la información que recibimos en Javascript

JavaScript nos permite manipular la información de muchas maneras, ya que es un muy flexible con sus reglas. Pero existen situaciones donde recibiremos datos no esperados y obtendremos errores. Corregir esto es muy sencillo, sigue leyendo para aprender cómo lograrlo.

Sintaxis

typeof variable

Esta expresión nos devuelve siempre una cadena (string) con la información del tipo de dato que representa la variable:

// números
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof(42) === 'number';
typeof Math.LN2 === 'number';

// cadenas
typeof "" === 'string';
typeof "bla" === 'string';

// lógicos
typeof true === 'boolean';
typeof false === 'boolean';

// otros
typeof undefined === 'undefined';
typeof {a:1} === 'object';

Nota: Tenemos a la izquierda la expresión que estamos evaluando. A la derecha de “===” está el valor que devuelve la rutina.

¿Para qué me sirve?

Sirve para evaluar los datos que recibimos y tomar una acción en caso de ser necesario. Por ejemplo, supongamos que tenemos una rutina como la que sigue:

function pasarMayusculas(valor)
{
    return valor.toUpperCase();
}

Si recibimos un valor como el que sigue:

try
{
    alert(pasarMayusculas(100));
}
catch(ex)
{
    alert(ex);
}

Obtenemos un mensaje de error, porque el valor 100 no es una cadena y (por tanto) no tiene definida la función toUpperCase.

Pero si modificamos nuestra rutina de la siguiente manera, podemos tener un código que va a funcionar cada vez que lo llamemos sin importar el valor que recibamos.

function pasarMayusculas(valor)
{
    if (typeof valor != "string")
    valor = valor.toString();
    return valor.toUpperCase();
}

Ejemplo práctico

Tenemos una variable global llamada numero donde se acumula cada valor que pasemos a la función sumar. Esta función verifica si lo que pasamos fue un número y de no serlo, convierte el valor a un número antes de acumularlo.

Esta técnica es muy sencilla pero increíblemente funcional. Implementarla en tu código hará que tus funciones sean mejores y reduzcas la cantidad de errores que aparecen sobre la marcha.

Si tienes alguna duda puedes dejarla en la sección de comentarios.


Posted

in

,

by

Comments

Deja un comentario

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