Javascript: Devolver 0 cuando parseInt() o parseFloat() reciban una cadena vacía

Tip rápido sobre Javascript: Imaginad que recogemos los datos de un formulario para que calcule en pantalla un sumatorio conforme el usuario los va introduciendo. Ahora imaginad que el usuario se deja un campo vacío. Cuando la función javascript se encuentre una cadena vacía, e intente convertirla a un número (con parseInt() o parseFloat() según lo que necesitemos) el resultado de la suma será NaN. ¿Cómo lo evitamos? Pues con un OR.

Si utilizamos el operador || seguido de un cero, tal como está en el ejemplo que verás a continuación, este evaluará de forma lógica la expresión, y en caso de que el primer término evaluado sea falso devolverá el segundo, un cero (el resultado NaN que devolverá la función que parse a número será evaluado como falso):

var s = '';
var total = 1;

//Si hago esto, el resultado es NaN
total = total + parseInt(s);

//Si hago esto, el resultado es 1
total = total + (parseInt(s) || 0;);

//con parseFloat funciona igual

Otra opción, utilizar el operador ternario ?:, como pusimos en otro ejemplo pasado.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s