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.');
}