Javascript
31 pág.

Javascript


DisciplinaImplementação de Aplicação para Computador12 materiais54 seguidores
Pré-visualização6 páginas
...): cria uma instância do objeto.
Operadores 11
\u2022 this: representa a instância do objeto corrente.
\u2022 void (expressao): resolve expressão, porém ignora valor retornado.
Short Circuit
Operações lógicas utilizam short circuit da seguinte forma:
true || qualquer coisa = true
false && qualquer coisa = false
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 Internet Explorer e do Firefox.
function listener(event) {
 event = event || window.event;
 //...
}
Assim se esta função estiver rodando no IE (Internet Explorer) ou num navegador utilizando Gecko irá rodar da
mesma forma.
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.
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 então:
Fluxo de Controle 12
{
 comando;
 comando;
 ...
 comando;
}
Comando If
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 expressã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(&quot;bom dia&quot;);
if (hora >= 12 && hora < 18)
 alert(&quot;boa tarde&quot;);
if (hora >= 18)
 alert(&quot;boa noite&quot;);
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.
var hora = new Date().getHours();
if (hora < 12)
 alert(&quot;bom dia&quot;);
else if (hora >= 12 && hora < 18)
 alert(&quot;boa tarde&quot;);
else
 alert(&quot;boa noite&quot;);
Para tornar mais legível podemos escrever da seguinte forma:
var hora = new Date().getHours();
if (hora < 12) {
 alert(&quot;bom dia&quot;);
} else {
if (hora >= 12 && hora < 18) {
 alert(&quot;boa tarde&quot;);
} else {
 alert(&quot;boa noite&quot;);
}
}
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 13
Comando While
Executa bloco enquanto condição resultar em verdadeiro.
while (condição) { bloco; }
Igual ao anterior, porém o bloco é executado pelo menos uma vez, mesmo que a condição seja falsa.
do { bloco; } while (condição);
Comando Switch
Se o conteúdo da variável for igual a constante1 ou constante2 será executado o comando1; se for igual a
constante3 será executado o comando2; caso contrário será executado o comando3; note que o comando
break força o fluxo sair fora do comando switch.
switch(variável) {
case constante1:
case constante2:
 comando1;
 break;
case constante3:
 comando2;
 break;
default:
 comando3;
}
Comando for
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(inicialização; condição; incremento)
 * comando;
 */
 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 14
Comando label
O label permite que a indicação de uma posição que pode ser utilizado com continue e break para salto dentro
de um loop (laço).
label:
Comando continue
Salta para loop ou para loop que está após label indicado.
continue;
continue label;
Comando break
Sai fora do loop corrente ou do loop que esta após label informado.
break;
break label;
Comando throw
Lança exceção.
throw expressão;
Comando try
Captura qualquer erro que um comando lance e captura exceções conforme expressão.
Abaixo o comando2 será executado caso comando1 lance uma exceção.
try {
 comando1;
} catch(e) {
 comando2;
}
Abaixo o comando3 será executado caso a exceção lançada pelo comando1 seja igual a expressão1, se for
igual a expressão2 o comando4 será executado, se for lançado uma exceção que não seja igual nem a
expressão1 e nem a expressão2 será executado o comando2;
try {
 comando1;
} catch(e if e == expressao1) {
 comando3;
} catch(e if e == expressão2) {
 comando4;
} catch(e) {
 comando2;
}
Executa comando1 se este lançar uma exceção executa comando2 em seguida comando3, se comando1 não
lançar nenhuma exceção executa comando3;
Fluxo de Controle 15
try {
 comando1;
} catch(e) {
 comando2;
} finally {
 comando3;
}
Exemplo:
var x = [[&quot;adao&quot;], [&quot;eva&quot;], [&quot;caim&quot;], [&quot;abel&quot;]];
for (i = 0; i < 100; i++) {
 try {
 document.writeln(&quot;x[&quot;, i, &quot;][0] = &quot;, x[i][0], &quot;<br />&quot;);
 } catch (e) {
 document.writeln(e, &quot;<br />&quot;);
 break;
 }
}
Observação: no exemplo acima, caso x fosse um vetor (Array de uma dimensão), não haveria erro, mas o loop
continuaria, apresentando x[4] = undefined, x[5] = undefined, e assim por
diante.
Funções
As funções são declaradas pela palavra reservada function (palavra-chave, keyword), seguido:
1. Do Identificador (assim o nome de uma variável);
2. da lista de argumentos (list of arguments) \u2014 delimitados por parênteses e separados por vírgula: (/*
argumentos */);
3. das instruções (bloco de instruções, ou código; corpo da função), delimitado por chaves: {/* instruções
*/}.
Referências: [1] .
Exemplo:
function identificador (argumento1, argumento2, argumento3 /*, ... */) {
 //Instruções; corpo da função.
}
Uma sintaxe alternativa é demonstrada abaixo.
var identificador = new function(argumento1, argumento2, argumento3 /*,
 ... */) {
 //Instruções; corpo da função.
};
Funções 16
Funções predefinidas segundo o padrão ECMA 262
Versão consultada: 5.1 [2] .
\u2022\u2022 Array.prototype.concat
\u2022\u2022 Array.prototype.constructor
\u2022\u2022 Array.prototype.every
\u2022\u2022 Array.prototype.filter
\u2022\u2022 Array.prototype.forEach
\u2022\u2022 Array.prototype.indexOf
\u2022\u2022 Array.prototype.join
\u2022\u2022 Array.prototype.lastIndexOf
\u2022\u2022 Array.prototype.map
\u2022\u2022 Array.prototype.pop
\u2022\u2022 Array.prototype.push
\u2022\u2022 Array.prototype.reduce
\u2022\u2022 Array.prototype.reduceRight
\u2022\u2022 Array.prototype.reverse
\u2022\u2022 Array.prototype.shift
\u2022\u2022 Array.prototype.slice
\u2022\u2022 Array.prototype.some
\u2022\u2022 Array.prototype.sort
\u2022\u2022 Array.prototype.splice
\u2022\u2022 Array.prototype.toLocaleString
\u2022\u2022 Array.prototype.toString
\u2022\u2022 Array.prototype.unshift
\u2022\u2022 Boolean.prototype.constructor
\u2022\u2022 Boolean.prototype.toString
\u2022\u2022 Boolean.prototype.valueOf
\u2022\u2022 Date.prototype.constructor
\u2022\u2022 Date.prototype.getDate
\u2022\u2022 Date.prototype.getDay
\u2022\u2022 Date.prototype.getFullYear
\u2022\u2022 Date.prototype.getHours
\u2022\u2022 Date.prototype.getMilliseconds
\u2022\u2022 Date.prototype.getMinutes
\u2022\u2022 Date.prototype.getMonth
\u2022\u2022 Date.prototype.getSeconds
\u2022\u2022 Date.prototype.getTime
\u2022\u2022 Date.prototype.getTimezoneOffset
\u2022\u2022 Date.prototype.getUTCDate
\u2022\u2022 Date.prototype.getUTCDay
\u2022\u2022 Date.prototype.getUTCFullYear
\u2022\u2022