miércoles, 3 de enero de 2018

Javascript Parte LXXIV

La función isFinite verifica si el parámetro tiene un valor numérico finito, en caso afirmativo retorna true.
Una variable numérica puede almacenar alguno de los siguientes valores:
El número propiamente dicho.

El valor NaN

El valor Infinite

El valor -Infinite
Veamos un ejemplo almacenando valores en variables que nos generen los distintos valores posibles:
<html>
<head>
</head>
<body>
<script type="text/javascript">

  var x1=120;
  if (isFinite(x1)) //true
    document.write('x1 tiene un valor finito que es el '+x1);
  else
    document.write('x1 no tiene un valor finito que es el '+x1);
  document.write('<br>');
  var x2=10e399;
  if (isFinite(x2)) //false
    document.write('x2 tiene un valor finito que es el '+x2);
  else
    document.write('x2 no tiene un valor finito que es el '+x2);
  document.write('<br>');
  var x3=-10e399;
  if (isFinite(x3))  //false
    document.write('x3 tiene un valor finito que es el '+x3);
  else
    document.write('x3 no tiene un valor finito que es el '+x3);
  document.write('<br>');
  var x4='juan';
  if (isFinite(x4))  //false
    document.write('x4 tiene un valor finito que es el '+x4);
  else
    document.write('x4 no tiene un valor finito que es el '+x4);

</script>
</body>
</html>
El primer if donde verificamos si tiene un valor finito la variable x1 se verifica verdadero:
  var x1=120;
  if (isFinite(x1)) //true
    document.write('x1 tiene un valor finito que es el '+x1);
  else
    document.write('x1 no tiene un valor finito que es el '+x1);
El segundo if se verifica falso donde controlamos el valor almacenado en la variable x2 (tener en cuenta que en JavaScript el valor máximo a almacenar es 1.7976931348623157e+308), la variable almacena el valor Infinity:
  var x2=10e399;
  if (isFinite(x2)) //false
    document.write('x2 tiene un valor finito que es el '+x2);
  else
    document.write('x2 no tiene un valor finito que es el '+x2);
De forma similar si almacenamos un valor negativo que supera la capacidad de JavaScript en la variable se almacena -Infinity:
  var x3=-10e399;
  if (isFinite(x3))  //false
    document.write('x3 tiene un valor finito que es el '+x3);
  else
    document.write('x3 no tiene un valor finito que es el '+x3);
Por último si almacenamos un valor no numérico como un string la función isFinite retorna false:
  var x4='juan';
  if (isFinite(x4))  //false
    document.write('x4 tiene un valor finito que es el '+x4);
  else
    document.write('x4 no tiene un valor finito que es el '+x4);
Para conocer el máximo y mínimo valor que puede almacenar una variable numérica podemos consultar las constantes MIN_VALUE y MAX_VALUE de la clase Number:
<html>
<head>
</head>
<body>

<script type="text/javascript">
  document.write(Number.MIN_VALUE);  // 5e-324
  document.write('<br>');
  document.write(Number.MAX_VALUE);  // 1.7976931348623157e+308
</script>

</body>
</html>
Problema
Mostrar por pantalla el valor 10 elevado a la 1,2,3 etc. hasta que se genere un valor infinito.
<html>
<head>
</head>
<body>
<script type="text/javascript">
  for(var x=1; ;x++)
  {
    var resu=Math.pow(10,x);
    if (isFinite(resu))
      document.write('10 elevado a la '+x+' es '+resu+'<br>');
    else
      break;
  }
</script>
</body>
</html>
Disponemos un for sin condición (con esto hace que para finalizar el mismo debemos llamar al comando break dentro del for cuando se genere un valor infinito, mediante el método pow de la clase Math obtenemos el valor 10 elevado a x (siendo x el contador del for)
Cuando se almacena un valor infinio en resu el if se vefifica falso y se ejecuta el break del else:
  for(var x=1; ;x++)
  {
    var resu=Math.pow(10,x);
    if (isFinite(resu))
      document.write('10 elevado a la '+x+' es '+resu+'<br>');
    else
      break;
  }
Por pantalla obtenemos la lista de 10 elevado a la 1,2,3,4 etc.:
10 elevado a la 1 es 10
10 elevado a la 2 es 100
10 elevado a la 3 es 1000
10 elevado a la 4 es 10000
10 elevado a la 5 es 100000 
.... 

No hay comentarios.:

Publicar un comentario