Função eval
Esta função é muito importante, tanto que existem algumas aplicações de Javascript que não poderiam se realizar se não a utilizamos. A utilização desta função é muito simples, mas pode ser que seja mais complexo entender em que caso utiliza-la porque às vezes é um pouco sutil sua aplicação.
Com os conhecimentos atuais não podemos dar um exemplo muito complicado, mas pelo menos podemos ver em funcionamento a função. Vamos utilizá-la em uma sentença um pouco rara e que não serve muito, mas se conseguimos entendê-la, conseguiremos entender também a função eval.
var meuTexto = "3 + 5"
eval("document.write(" + meuTexto +")")
Primeiro, criamos uma variável com um texto, na seguinte linha utilizamos a função eval e como parâmetro lhe passamos uma instrução javascript para escrever na tela. Se concatenamos os strings que existem dentro dos parênteses da função eval ficaria asim.
document.write(3 + 5)
A função eval executa a instrução que for passada por parâmetro, portanto executará esta sentença, o que dará como resultado que se escreva um 8 na página web. Primeiro se resolve a soma que há entre parênteses, com o qual obtemos o 8 e logo se executa a instrução de escrever na tela.
Função parseInt
Esta função recebe um número, escrito como uma cadeia de caracteres, e um número que indica uma base. Na verdade pode receber outros tipos de variáveis, dado que as variáveis não têm tipo em Javascript, mas costuma-se utilizar passando um string para converter a variável de texto em um número.
As distintas bases que pode receber a função são 2, 8, 10 e 16. Se não passamos nenhum valor como base a função interpreta que a base é decimal. O valor que devolve a função sempre tem base 10, de modo que se a base não é 10 converte o número a essa base antes de devolvê-lo.
Vejamos uma série de chamadas à função parseInt para ver o que devolve e entender um pouco mais a função.
document.write (parseInt("34"))
Devolve o número 34
document.write (parseInt("101011",2))
Devolve o número 43
document.write (parseInt("34",8))
Devolve o número 28
document.write (parseInt("3F",16))
Devolve o número 63
Esta função se utiliza na prática para um monte de coisas distintas no manejo com números, por exemplo, obter a parte inteira de um decimal.
document.write (parseInt("3.38"))
Devolve o número 3
Também é muito habitual seu uso para saber se uma variável é numérica, pois se passamos um texto à função que não seja numérico nos devolverá NaN (Not a Number) o que quer dizer que Não é um Número.
document.write (parseInt("criarweb.com"))
Devolve o número NaN
Este mesmo exemplo é interessante com uma modificação, pois se passamos uma combinação de letras e números, daria o seguinte.
document.write (parseInt("16XX3U"))
Devolve o número 16
document.write (parseInt("TG45"))
Devolve o número NaN
Como se pode ver, a função tenta converter o string em número e senão pode, devolve NaN.
Todos estes exemplos, meio desconexos, sobre como trabalha parseInt serão revisados mais adiante em exemplos mais práticos quando tratarmos o trabalho com formulários.
Função isNaN
Esta função devolve um booleano dependendo se o que se recebe é um número ou não. O único que pode receber é um número ou a expressão NaN. Se recebe um NaN devolve true e se recebe um número devolve false. É uma função muito simples de entender e de utilizar.
A função costuma trabalhar em combinação com a função parseInt ou parseFloat, para saber se o que devolvem estas duas funções é um número ou não.
meuInteger = parseInt("A3.6")
isNaN(meuInteger)
Na primeira linha atribuímos a variável meuInteger o resultado de tentar converter a inteiro o texto A3.6. Como este texto não se pode converter a número, a função parseInt devolve NaN. A segunda linha comprova se a variável anterior é NaN e sendo assim devolve um true.
meuFloat = parseFloat("4.7")
isNaN(meuFloat)
Neste exemplo convertemos um texto a número com decimais. O texto se converte perfeitamente porque corresponde com um número. Ao receber um número a função isNaN devolve um false.
|
Referência: Validar inteiro em campo de formulário
Temos um Workshop de Javascript muito interessante que foi realizado para aprofundar os conhecimentos destes capítulos. Trata-se de um script para validar um campo de formulário de maneira que saibamos com certeza que dentro do campo há sempre um número inteiro. Pode ser muito interessante lê-lo agora, já que utilizamos as funções isNaN() e parseInt(). Ver o Workshop |