Javascript referencias a linguagem - PARTE 4


assim é possível por exemplo fazer a seguinte operação:
if (a != 0 && 1/a > 0.5) {
....
}
assim evita erros de divisão por zero.
Outro exemplo da utilização, é para contornar a diferença dos eventos do explorer e do
mozilla/firefox.
function listener(event) {
event = event || window.event;
...
}
Assim se esta função estiver rodando no IE ou num navegador utilizando Gecko irá rodar da mesma
forma.
16
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
FLUXO DE CONTROLE:
Controlando o que e quando é executado um comando, faz parte de todas as linguagens, e o
javascript não é diferente.
Existem vários comandos, que por isto são tratados como palavras reservadas e portanto não
devem ser utilizados como identificadores de variáveis ou constantes.
São eles:
• B loco de comandos
• i f/then/else
• w hile/do..while
• s witch/case
• f or
• l abel
• c ontinue
• b reak
• t hrow
• T ry/Catch/Finally
17
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
FLUXO DE CONTROLE: BLOCO DE COMANDOS:
No Javascript, o bloco de comandos é uma estrutura para agrupar outros comandos.
O bloco de comando começa pelo abre chave "{" e finaliza com o fecha chave "}", o ultimo
elemento não necessáriamente necessita de finalizar com ponto e virgula ";", mas se terminar não
terá problemas, este ultimo ponto e virgula é opcional.
{
comando;
comando;
...
comando
}
ou
{
comando;
comando;
...
comando;
}
FLUXO DE CONTROLE: COMANDO IF..ELSE:
Talvez um dos comandos mais utilizados em todas as linguagens de programação, o 'if' é um
comando utilizado para tomar a decisão de executar o próximo comando baseado numa espressão
lógica, se esta expressão for verdadeira o próximo comando é executado, caso contrário ele é
ignorado.
Por exemplo, se for necessário dar um alerta ao usuário, conforme a hora, podemos fazer o
seguinte:
var hora = new Date().getHours();
if (hora < 12)
alert("bom dia");
if (hora >= 12 && hora < 18)
alert("boa tarde");
if (hora >= 18)
alert("boa noite");
Note que as três comparações serão feitas, independente da execução, isto é uma perda de
tempo, pois se é de dia não pode ser tarde, neste caso anexamos a estrutura do 'if' o comando 'else'
que executa o comando a seguir caso o resultado da expressão lógica seja false, ficando o nosso
código assim.
18
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
var hora = new Date().getHours();
if (hora < 12)
alert("bom dia");
else if (hora >= 12 && hora < 18)
alert("boa tarde");
else
alert("boa noite");
Para tornar mais legível podemos escrever da seguinte forma:
var hora = new Date().getHours();
if (hora < 12) {
alert("bom dia");
} else {
if (hora >= 12 && hora < 18) {
alert("boa tarde");
} else {
alert("boa noite");
}
}
Assim torna mais legível a o comando executado, sem falar que usando blocos de comandos
podemos agrupar mais de um comando.
FLUXO DE CONTROLE: COMANDO WHILE:
• Executa comando enquanto condição resultar em verdadeiro:
WHILE (CONDIÇÃO)
COMANDO;
• Igual ao anterior, porém o comando é executado pelo menos uma vez, mesmo que condição
seja falsa.
DO
COMANDO;
WHILE (CONDIÇÃO);
FLUXO DE CONTROLE: COMANDO SWITCH:
Se o conteúdo da variável for igual a constante1 ou constante2 será executado o comando1;
se for igual a constante 3 será executado o comando 2; caso contrário será executado o comando 3;
note que o comando break força o fluxo sair fora do comando switch.
19
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
switch(variável) {
case constante1:
case constante2:
comando1;
break;
case constante3:
comando2;
break;
default:
comando3;
}
FLUXO DE CONTROLE: COMANDO FOR:
for(inicialização; condição; incremento) comando;
Efetua uma inicialização em seguida executa o comando enquanto a condição for
verdadeira, após a execução do comando executa a expressão de incremento, ex:
for(var i=0; i < 3; i++)
alert(i);
é equivalente a :
var i=0;
while (i < 3) {
alert(i);
i=i+1;
}
FLUXO DE CONTROLE: COMANDO LABEL:
Label:
Label permite que a indicação de uma posição que pode ser utilizado com continue e break
para salto dentro de um loop.
FLUXO DE CONTROLE: COMANDO CONTINUE:
Continue; e Continue label;
Salta para loop ou para loop que está após label indicado.
20
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
FLUXO DE CONTROLE: COMANDO BREAK:
Break; e Break label;
Sai fora do loop corrente ou do loop que esta após label informado.
FLUXO DE CONTROLE: COMANDO THROW:
throw expressão;
Lança exceção.
FLUXO DE CONTROLE: COMANDO TRY:
Captura qualquer erro que comando lance ou captura exceções conforme expressão.
No primeiro caso comando2 será executado caso comando1 lance uma exceção.
No segundo caso o comando3 será executado caso a exceção lançada pelo comando1 seja
igual a expressão1, se for igual a expressão2 o comando 4 será executado, se for lançado uma
exceção que não seja igual nem a expressão 1 e nem a expressão 2 será executado o comando2;
try {
comando1;
} catch(e) {
comando2;
}
ou
try {
comando1;
} catch(e if e==expressao1) {
comando3;
} catch(e if e== expressão2) {
comando4;
} catch(e) {
comando2;
}
21
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
Executa comando1 se este lançar uma exceção executa comando 2 em seguida comando3, se
comando1 não lançar nenhuma exceção executa comando3;
try {
comando1;
} catch(e) {
comando2;
} finally {
comando3;
}
22
Conteúdo disponível sob GNU Free Documentation License.


Comentários