Frases e Inteiros

O internauta vai ver muito a palavra String em códigos de programas.
É como as linguagens se referem a uma frase; ou seja, uma sequência de caracteres alfanuméricos.

As linguagens facilitam a vida do programador classificando as variáveis em tipos.
Os tipos mais básicos são: inteiro (Integer), fracional (Real), caracter (Char); e frase (String).

O tipo frase (String) é um vetor com vários elementos do tipo caracter (Char).

Em Javascript não há declaração de tipo de variáveis; todas as variáveis são objetos.
Em muitas outras linguagens as variáveis precisam ser declaradas explicitamente, como ocorre em Pascal, Object Pascal, C, C++, C#, entre outras.
Porém, a forma de se atribuir valores em Javascript indica o tipo de dados que o objeto está trabalhando.
Exemplo:

<html>
  <head>
    <script type="text/javascript">
      var Teste;

      Teste= 'Ali';
    </script>
  </head>
  <body>
  </body>
</html>

Neste exemplo a variável Teste, apenas pra ilustrar, será chamada do tipo String.
O interpretador JavaScript sabe que deve tratá-la como String pelo jeito da atribuição (neste caso está recebendo o dado 'Ali').
A sintaxe do JavaScript diz que tudo que estiver entre aspas (simples ou dupla) deve ser tratado como uma String.

E essa atribuição no código abaixo?

<html>
  <head>
    <script type="text/javascript">
      var Teste;

      Teste= '123';
    </script>
  </head>
  <body>
  </body>
</html>

A única coisa que o iniciante precisa saber é que Teste ainda continua trabalhando com o tipo String.
Apesar de conter dígitos (caracteres numéricos) ainda assim continua sendo uma String porque 123 está dentro de aspas.

E agora?

<html>
  <head>
    <script type="text/javascript">
      var Teste;

      Teste= 123;
    </script>
  </head>
  <body>
  </body>
</html>

Agora o interpretador vai reconhecer Teste como trabalhando com o tipo Integer.
Mas qual a diferença?

Uma explicação detalhada iria envolver vários assuntos que requerem um profundo estudo.
Seria necessário explicar como os processadores atuais armazenam os dados na memória; as bases numéricas binária, hexadecimal e decimal, etc, etc.

Uma forma simples pra explicar é comentar sobre os padrões de codificação atuais: ASCII, Unicode, etc.

Uma codificação nada mais é do que uma tabela. Ela relaciona um caracter com um determinado número.
Nas memórias pra PC a menor unidade de alocação é um octeto.
Num octeto armazena-se um número entre 0 e 255.
Quando se diz que uma memória tem 256 Mo, está se dizendo que ela pode armazenar exatamente 268.435.456 octetos.
Cada octeto é uma espécie de caixinha onde se pode depositar uma moeda (um número) cujo valor esteja entre 0 e 255.

A tabela ASCII relaciona o caracter A com o número 65.
Pro processador pouco importa se num determinado octeto com o valor 65 isto está representando o número "sessenta e cinco" ou o caracter A.
O processador só lida com números.
Quem tem de se preocupar com isto é o programador.

É por esta razão que ocorre zoneação em certas páginas da Internet.
O sujeito usa na sua página um caracter acentuado lá no caxa-prego e quando outro lá no fim-de-mundo vai abrir vê um caracter totalmente diferente.
O que ocorreu?
Ocorreu que internamente o número não mudou, exemplo 253. A única coisa que mudou foi a interpretação deste número.
A codificação usada pelo navegador do cara do caxa-prego relaciona o número 253 com o caracter ý. Já a codificação usada pelo navegador do cara do fim-de-mundo interpreta 253 como ². Portanto: é zona!

Em mais baixo nível os programas só desenham saídas.
O navegador do cara do caxa-prego está na verdade desenhando a imagem ý.
As linguagens de programação é que facilitam toda essa interpretação dos octetos.

Portanto, na atribuição da string Teste= 'Ali'; o interpretador vai mandar 3 octetos (65; 108; 105) pro processador (se fosse utilizar a codificação ASCII):

Caracter: A l i
Representação numérica ASCII: 65 108 105


E na atribuição da string Teste= '123'; o interpretador vai mandar os octetos (49; 50; 51):

Caracter: 1 2 3
Representação numérica ASCII: 49 50 51


Já na atribuição do integer Teste= 123; o interpretador pode mandar apenas um octeto com o valor (123):

Inteiro: 123
Representação numérica: 123




Convertendo

Um processo bem comum em programação é a conversão entre strings e inteiros.
A entrada pelo usuário é sempre feita com strings.
Se um programa pedir pra digitar a idade e o internauta digitar 25, o código poderá precisar converter a string '25' pro inteiro 25.

No Javascript não é necessário fazer essas conversões. Mas em diversas outras linguagens sim.


Apenas pra ilustrar:
Teste e Ano são strings; X e Y são inteiros.
O método ParseInt está convertendo a string '25' pro inteiro 25.
Logo abaixo o método ToString é que converte o número 1982 pra string '1982'.

<html>
  <head>
    <script type="text/javascript">
      var Ano, Teste, X, Y;

      Teste= '25';
      X    = parseInt (Teste);
      Y    = 2007-X;
      Ano  = Y.toString ();

      alert ('Se alguém está com 25 anos em 2007 é porque nasceu provavelmente em ' + Ano);
    </script>
  </head>
  <body>
  </body>
</html>
Clique aqui pra abrir no navegador





http://transeberiano.brinkster.net