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:
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