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→

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

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

Nesse 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 (nesse 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?

  Exemplo  
<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?

  Exemplo  
<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 e as bases numéricas binária, hexadecimal, 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 isso 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 isso é o programador.

É poressa 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 desse 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 String e inteiro.
A entrada pelo usuário é sempre feita com String.
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.

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


Apenas pra ilustrar→

Teste e Ano são do tipo String. 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'.

  Exemplo  
<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>
Abrir no navegador





http://transeberiano.brinkster.net