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

Retornar