Función isNaN |
La función global isNaN (is Not a Number) verifica si el valor que le pasamos es un número válido y podemos estar seguros de operar con dicho valor. Esta función puede ser empleada inmediatamente luego de llamar a las funciones parseInt y parseFloat.
Con un pequeño ejemplo podemos ver los valores que nos retorna la función isNaN si le pasamos variables con un valor entero, float, un string con caracteres numéricos y un string con caracteres alfabéticos:
var x=10; if (isNaN(x)) //false alert('no es un número'); var z=10.5; if (isNaN(z)) //false alert('no es un número'); var edad='77'; if (isNaN(edad)) //false alert('no es un número'); var nom='juan'; if (isNaN(nom)) //true alert('no es un número:'+nom);Problema
Realizar la carga de dos valores enteros por teclado utilizando la función prompt. Calcular la suma previo controlar que los dos valores sean de tipo numérico.
<html> <head> </head> <body> <script type="text/javascript"> var x1,x2,suma; x1=prompt('Ingrese el primer valor:',''); x2=prompt('Ingrese el segundo valor:',''); x1=parseInt(x1); x2=parseInt(x2); if (isNaN(x1) || isNaN(x2)) { document.write('Al menos uno de los dos valores ingresados no es numérico.'); } else { suma=x1+x2; document.write('La suma de los dos valores es:'+suma); } </script> </body> </html>
Luego de cargar los dos valores por teclado procedemos a convertirlos a tipo entero:
x1=prompt('Ingrese el primer valor:',''); x2=prompt('Ingrese el segundo valor:',''); x1=parseInt(x1); x2=parseInt(x2);
Mediante un if verificamos si alguno de los dos valores no es un número:
if (isNaN(x1) || isNaN(x2)) { document.write('Al menos uno de los dos valores ingresados no es numérico.'); }