A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Tutorial Javascript I

Seg

9

Out

2006


17:54

(57 votos, média 4.39 de 5) 


Variáveis

A Javascript não exige que o tipo das variáveis seja declarado - a linguagem se vira sozinha para descobrir se o valor é numérico, string, etc. Pra falar a verdade, isto é uma mão na roda. Se quisermos definir uma variável como número inteiro, basta atribuir-lhe um valor inteiro; se quisermos que guarde um número de ponto flutuante, basta atribuir-lhe um valor em ponto flutuante:

var inteiro; A javascript não tem idéia do tipo inteiro = 3; A javascript reconhece o tipo inteiro ou inteiro = 3.5; Apesar do nome, a javascript reconhece o tipo float ou inteiro = "teste"; Apesar do nome, a javascript reconhece o tipo string

Variáveis Globais e Locais

As variáveis não precisam necessariamente ser declaradas através de var, ou seja,

var i = 3; é o mesmo que i = 3;

Então, qual é a vantagem que Maria leva? A aplicação de var define o escopo da variável, ou seja, em que nível do programa ela está ativa e pode ser reconhecida. Existem variáveis globais que, como o nome indica, são reconhecidas em qualquer ponto do programa e existem variáveis locais, reconhecidas em áreas específicas de um programa. Uma área limitada é, por exemplo, uma função. Como uma função pode ser chamada de qualquer ponto do programa, se quisermos que o resultado de uma soma seja mostrado num diálogo do tipo alert podemos criar o seguinte código:

int1 = 3; int2 = 5; mostraSoma(); int1 = int1 * 2; mostraSoma(); alert(ms); function mostraSoma() { alert(int1 + int2); var ms = "local"; }

Logo no início foram criadas as variáveis int1 e int2 sem a diretiva var. Isto cria variáveis globais, que podem ser "vistas" em qualquer área do programa. Por este motivo, mesmo que a função mostraSoma não receba os valores de int1 e int2 como parâmetros, é possível usar estas variáveis para enviar o resultado da soma para uma caixa de diálogo. Na primeira chamada, o resultado mostrado será 8; na segunda, o resultado mostrado será 11.

Depois das duas chamadas à função mostraSoma, uma caixa de diálogo é chamada com o valor ms. Acontece que esta caixa de diálogo não será mostrada! O motivo é que a variável ms foi criada com a diretiva var na área da função mostraSoma. Isto faz com que ms seja uma variável local, que só pode ser acessada dentro da área da função. Como o alert(ms); foi chamado fora da função mostraSoma e a variável ms só pode ser "vista" dentro da área da função, necas de caixa de diálogo :thumbdown:

Experimente rodar este programinha no aplicativo ScriptBox abaixo. Mude o que quiser e faça novos testes. Comece a brincar com a JS!

ScriptBox

Até aí, tudo bem - o estrago não foi grande. Continue pilotando o ScriptBox e declare novamente a variável int1 COM a diretiva var na função mostraSoma. O que que acontece? Nada mais funciona porque a variável foi "sequestrada e confinada": tornou-se uma variável local que só é reconhecida dentro da função.

Informações adicionais