Beruflich Dokumente
Kultur Dokumente
Bibliografia Bsica
CARDOSO, Mardel. Desenvolvendo Web para ensino superior. So Paulo: Axel Books, 2004. MARCONDES, Christian Alfim. HTML fundamental 4.0. So Paulo: rica, 2005. FEATHER, Stephen. JavaScript em exemplos. So Paulo: Makron Books, 1997.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
Bibliografia Complementar
SMITH, Dor. Javascript para World Wide Web. 4. ed. Rio de Janeiro: Campus, 2001. MACEDO, Marcelo da Silva. Construindo sites adotando padres Web. Rio de Janeiro: Cincia Moderna, 2004. ALBERTIN, Alberto Luiz. Comrcio eletrnico : modelo, aspectos e contribuies de sua aplicao. So Paulo: Atlas, 2004. , Cyclades Brasil. Guia Internet de conectividade. So Paulo: Senac, 2005. GOODMAN, Danny. Javascript : a bblia. Rio de Janeiro: Campus, 2001.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
Contedo do Semestre
Aula 1 Tpico Apresentao; Histrico da linguagem JavaScript Caractersticas e restries JavaScript x Java (Semelhanas e Diferenas) Outras linguagens script; Tag SCRIPT, Tag NOSCRIPT, JavaScript acionado por eventos e arquivos JS; Escrevendo no corpo da pgina com JavaScript Inserindo comentrio no fonte JavaScript; 2 Tipos de dados Declarao de variveis Palavras reservadas Operadores Matemticos. Exemplos. Operadores Lgicos e Relacionais. Exemplos. 3 Estruturas Condicionais: if, switch; Exemplos Estruturas de Repetio: for. Exemplos Estruturas de Repetio: while, do while. Diferenas. Exemplos de todas 4 O que so Objetos Objetos JavaScript A rvore de Objetos HTML: Window, Location, History. Document: Links, Anchor, Forms. Caixas de mensagem: alert, confirm, prompt; Exemplo: acessando elemento
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
Contedo do Semestre
Aula 5 Tpico O que uma funo;Como se escreve uma funo;Como chamar uma funo O que so parmetros; Mltiplos parmetros Chamada de Funes com Eventos; 6 Funes Matemticas; Funes explicitas de converso: eval, parseInt, parseFloat Funes de String: length, charAt, indexOf, lastindexOf; substring, toUpperCase, toLowerCase, escape, unescape; Exemplos converso: texto para nmero 7 Eventos nas Tags HTML: OnLoad, OnUnload, OnChange, OnBlur; OnFocus, OnClick, OnMouseover, OnSelect, OnSubmit Exemplos: Reutilizao da funo mdia 8 Variveis globais e locais;Passagem de Parmetro por valor; Valores de Retorno; Exemplos: Retorno da funo mdia
Introduo Tecnologia Web roberto.arruda@gmail.com www.arruda.eti.br/uniban 5
Contedo do Semestre
Aula Tpico 9 Obtendo valores dos campos de um formulrio Obtendo valor de cada tipo de campo do formulrio; Exemplos Exemplos: A funo mdia a partir de campos do formulrio 10 Array: Criando, Inserindo valor, Lendo valor Longitude e tipos de dados Array Multidimensional; criando e inicializando ao mesmo tempo Exemplo: Vrios campos do formulrio em um array 11 Validao de campo em branco; campos numricos; e-mail; radio e checkbox Exibir/ocultar campos em determinada linha da tabela dependendo da opo marcada em outro campo do formulrio. Exemplo: Validao dos campos do formulrio de mdia 12 Reviso do Contedo do semestre
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
Javascript: Conceitos
O HTML uma linguagem de marcao de texto simples e no pode responder para o usurios , tomar deciso ou realizar tarefas repetitivas, presentes em uma linguagem de programao, como o JavaScript. O JavaScript uma linguagem interpretada, ou seja, o navegador executa cada linha de script na medida em que as recebe. Se encontra algum erro de sintaxe, o navegador interrompe a interpretao do arquivo. Com JavaScript voc pode:
Adicionar mensagens que rolam na tela ou alterar as mensagens na linha de status do navegador. Validar os contedos de um formulrio e fazer clculos. Exibir mensagens para o usurio, tanto como parte de um pagina da Web como em caixas de alertas. Fazer animaes de imagens ou criar imagens que mudam quando voc move o mouse sobre elas. Detectar o navegador em utilizao e exibir contedo diferente para navegadores diferentes. Detectar plug-ins instalados e notificar o usurio se um plug-ins foi exigido. Gerar contedo HTML dinmico (Gmail)
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
Histrico da Linguagem
LiveScript O live vem de dar vida a web Por apostas de mercado, em 1995 com a permisso da Sun, virou JavaScript. Evoluo:
Navegador Netscape Navigator 2.0 Microsoft Internet Explorer 3.0 Netscape Navigator 3.0 Netscape Navigator 4.0 Microsoft Internet Explorer 4.0 Netscape Navigator 4.5 Microsoft Internet Explorer 5.0 Ano 1995 1996 1996 1997 1997 1998 1999 Verso JavaScript 1.0 JavaScript 1.0 (JScript 1.0) JavaScript 1.1 JavaScript 1.2 JavaScript 1.2 (JScript 3.0) JavaScript 1.3 JavaScript 1.3 (JScript 5.0)
Especificao Oficial:
http://www.ecma-international.org/publications/standards/Ecma-262.htm
Alternativa: VB Script
http://www.microsoft.com/brasil/technet/DocumentacaoTecnica/VBScript/Default.mspx
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
JavaScript NO Java!
Compilador. Para programar em Java necessitamos um Kit de desenvolvimento e um compilador. Javascript uma linguagem interpretada pelo navegador e no precisa ser compilada; Orientado a objetos. Java uma linguagem de programao orientada a objetos. Javascript no orientado a objetos, isto quer dizer que poderemos programar sem necessidade de criar classes, tal como se realiza nas linguagens de programao estruturada como C ou Pascal. Propsito. Java muito mais abrangente e de propsito geral; Javascript utilizada apenas para automatizar pginas HTML. Estruturas fortes. Java uma linguagem de programao fortemente tipada, isto quer dizer que ao declarar uma varivel teremos que indicar seu tipo e no poder mudar de um tipo a outro automaticamente. Javascript no tem esta caracterstica. Podemos colocar em uma varivel a informao que desejarmos, independentemente do tipo. Podemos ainda mudar o tipo de informao de uma varivel quando quisermos.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
Embora o cdigo possa ser inserido em qualquer parte do documento, mais comum inseri-lo no cabealho da pgina HTML A tag <NOSCRIPT> serve para ocultar para lidar com navegadores que no suportem JavaScript
<NOSCRIPT>Seu navegador no suporta Javascript. Clique <a href=sem_javascript.html">aqui</a> para acessar uma pgina sem Javascript </NOSCRIPT>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
10
Uma forma comum escrever o cdigo JavaScript em arquivos separados O arquivo pode ser utilizado em vrias pginas HTML A manuteno fica concentrada em um nico ponto Uma pgina HTML pode referenciar vrios arquivos JavaScript diferentes. Um arquivo Javascript no contm Tags HTML Normalmente tem a extenso .js
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
11
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
12
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
13
Variveis e Constantes
Voc pode dar, virtualmente, qualquer nome para uma varivel. Porm, existem algumas regras e restries:
Um nome de varivel no pode comear com um nmero. Em outras partes do nome sim, mas no comeo no. Caracteres especiais como: +, *, \, /, !, etc... no podem ser usados como parte do nome de uma varivel. O underline ou underscore (_) pode ser usado livremente, tanto no comeo, meio ou fim do nome da varivel. Espaos so proibidos.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
14
Variveis e Constantes
A declarao de variveis realizada atravs da palavra reservada var, e a declarao de constantes por const. Ambos realizam a declarao de uma ou vrias variveis, separadas por vrgulas, podendo haver ou no atribuio. Exemplos: var i=2; const PI=3.14159; var j, k=3; var nome = Albert Einstein
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
15
Palavras Reservadas
A tabela abaixo com as palavras reservadas pela linguagem (if, else) que no podem ser utilizadas para nomear variveis e funes.
abstract as boolean break byte case catch char class continue const debugger default delete do double else enum export extends false final finally float for function goto if implements import in instanceof int interface is long namespace native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof use var void volatile while with
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
16
Tipos de Dados
Diferente de outras linguagens, o Javascript define as variveis dinamicamente, portanto ao atribuir uma varivel ele escolhe o tipo conforme o valor passado para a varivel, no sendo necessrio especifica-lo.Os tipos de dados que o JavaScript pode tratar so:
Nmeros: O JavaScript suporta tanto inteiros como nmeros de ponto flutuante, como por exemplo: 1,4 . Valores booleanos ou lgicos: Estes podem ter um de dois valores: verdadeiro ou falso. Esses tipos de dados til para indicar se uma certa condio verdadeira. String: Estas consistem em um ou mais caracteres de texto, como por exemplo : Sistemas de Informao. Valor nulo : Representada pela palavra-chave null. Esse o valor indefinido de uma varivel, ou seja, ela no foi previamente utilizada ou definida.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
17
Tipos de Dados
Apesar de monitorar o tipo de dados atualmente armazenado em cada varivel, o Javascript no impede que voc altere os tipos intermedirios. Por exemplo, suponha que voc declarou uma varivel atribuindo-lhe um valor:
resultado= 3; // atribuio inicial resultado = teste; // atribuio possvel
Ateno: Embora esses recursos do JavaScript sejam convenientes, eles tambm podem tornar fcil a tarefa de cometer erros de codificao. Por exemplo, se a varivel resultado for mais tarde utilizada em um calculo matemtico, o resultado da operao ser invalido, o JavaScript no o adverte de que voc cometeu esse equivoco.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
18
Operadores de Atribuio
Operador Descrio = Atribui o valor do operando esquerdo ao operando direito. += Soma 2 valores e atribui o resultado ao primeiro valor. -= Subtrai 2 valores e atribui o resultado ao primeiro. Exemplo(s) x = 3; a = b + c; x += 3; Se x era 1, passa para 4. x -= 3; Se x era 1, passa para -2.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
19
Operadores de Aritmticos
Operador Descrio + Soma valores. Subtrai valores (como operador binrio). Muda sinal (como operador unitrio). * Multiplica valores. / Divide valores. % Resto da diviso. ++(var) Incremento de 1 (antes). (var)++ --(var) (var)-Incremento de 1 (depois). Decremento de 1 (antes). Decremento de 1 (depois). Exemplo(s) a = 2 + 3; b = b +1; x = x - 5; x = a - b x = -x; x = -(a + b); a = 2 * 3; b = c * 5; a = 50 / 3; d = 5 % 3; d assume valor 2. Se x 2, y = ++x faz x igual a 3 e depois y igual a 3. Se x 2, y = x++ faz y igual a 2 e depois x igual a 3. Se x 2, y = --x faz x igual a 1 e depois y igual a 1. Se x 2, y = x-- faz y igual a 2 e depois x igual a 1.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
20
Operadores Relacionais
Operador Descrio == Igual a != > >= < <= Diferente de Maior que Maior ou igual que Menor que Menor ou igual que Exemplo(s), supondo a = 3 e b = 5 a==b // retorna false a != b // retorna verdadeiro a > b // retorna falso a >= b // retorna falso a < b // retorna verdadeiro a <= b // retorna verdadeiro
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
21
Operadores Lgicos
Operador Descrio && Exemplo(s), supondo a = 3 e b = 5 E lgico: retorna verdadeiro se ambas a==3 && b<10 // retorna as expresses so verdadeiras e falso verdadeiro nos demais casos a!=3 && b==5 // retorna falso OU lgico: retorna verdadeiro se pelo a==3 || b<10 // retorna verdadeiro menos uma das expresses a!=3 || b==5 // retorna verdadeiro verdadeira e falso se todas so falsas a==1 || b==3 // retorna falso NO lgico: retorna verdadeiro se o ! (a==3) // retorna falso operando falso e vice-versa ! (a!=3) // retorna verdadeiro
||
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
22
Estrutura Condicional: if
if (<condio>) { <instrues>; } Exemplo: var nota = 5; if (nota > 5) { // aluno aprovado }
Fluxo de execuo
falsa condio
verdadeira
Bloco de comandos
O valor retornado pela condio deve ser o resultado de uma atribuio lgica
Fluxo de execuo
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
23
Estrutura Condicional: if
Uma instruo if pode ser aninhada: if (<condio>) { <instrues>; } else if { <instrues>; } else { <instrues>; }
Fluxo de execuo
verdadeira condio
falsa
Exemplo:
Bloco de comandos
Bloco de comandos
var nota = 5; if (nota > 5) { alert(aluno } else if (nota { alert(aluno } else { alert(aluno }
Fluxo de execuo
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
24
expresso
Exemplo: var disciplina = WEB; switch (disciplina) { case WEB: // introduo tec.web break case LP: // lgica de programao break default: // nenhuma disciplina }
Fluxo de execuo
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
25
Fluxo de execuo
for (inicializao;condio;incremento) {
<instrues>;
}
Inicializao
Exemplo:
verdadeira Condio falsa Fluxo de execuo
Atualiza contador
var i=0 for (i=0; i<=10; i++){ document.write(Valor de i:+i); document.write("<br />") }
Bloco de comandos
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
26
O loop while executa as instrues especificadas em seu bloco de cdigo, enquanto a condio especificada for verdadeira. Esse comando pode no se repetir nenhuma vez, caso a condio se apresente falsa desde o primeiro momento. Forma geral
Fluxo de execuo
Bloco de comandos
Teste da condio
Fluxo de execuo
www.arruda.eti.br/uniban
27
Loop que repete seu bloco de instrues enquanto a condio imposta em while for verdadeira. Este tipo de loop produz pelo menos uma iterao, pelo fato de a condio ser verificada apenas no final Forma geral
Fluxo de execuo
Bloco de comandos
Condio
verdadeira
falsa
Fluxo de execuo
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
28
O comando break pode ser utilizado para interromper o loop. O comando continue interrompe o fluxo de execuo, voltando imediatamente para o teste condicional. Os comandos so vlidos nos loops for, while e do..while. Exemplo:
Fluxo de execuo
Volta ao incio do loop var i=0 for (i=0;i<=10;i++) { if (i==3) { continue; } else if (i==8) { Interrompe o lao de repetio break; } document.write("The number is " + i) document.write("<br />") }
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
29
A diferena bsica entre o loop while e o do..while que na primeira estrutura a instruo lgica avaliada antes da execuo do bloco; na segunda estrutura a expresso avaliada aps a execuo do bloco. No loop do..while o bloco de comandos executado PELO MENOS uma vez, mesmo que a condio lgica seja avaliada como falsa.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
30
Objetos
Para facilitar o entendimento, vamos considerar um objeto como uma varivel especial que agrupa outras variveis. Um objeto pode conter algum tipo de comportamento Na prtica um objeto um representante de uma classe. Demonstrar todo o conceito de orientao a objetos no est entre os objetivos dessa disciplina
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
31
Objeto window
Cada janela do navegador aberta tem um objeto window correspondente A estrutura HTML da pgina refletida no objeto document, contido em cada objeto window O objeto window considerado explcito para a janela corrente, ento no obrigatrio referencia-lo.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
32
Objeto window
navigator: informaes do navegador; tipo; verso; screen: propriedades da tela, resoluo, posicionamento. history: histrico de navegao da janela atual;
Exemplo: Voltar para ltima pgina acessada (mesmo efeito que clicar no boto voltar do navegador) history.go(-1)
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
33
Qualquer elemento HTML (e cada uma de suas propriedades) pode ser acessado programaticamente atravs de um cdigo JavaScript O ttulo da pgina pode ser modificado atravs do comando:
Como o objeto window explcito, a linha de comando abaixo produz o mesmo efeito da linha acima:
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
34
Atravs do objeto window possvel exibir caixas de mensagem de entrada e sada de dados A caixa de mensagem alert mais comum. Exemplo
var saudacao = "Ol! Tudo bom?"; alert( saudacao );
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
35
A janela confirm nos permite pedir uma confirmao para o usurio. O usurio sempre ter duas opes: uma positiva e outra negativa. Como esta janela definida pelo navegador e o sistema operacional, voc no tem controle sobre o texto dos botes, suas posies, o cone da janela, etc... O nico item configurvel a mensagem que exibida dentro da janela. Exemplo
var fechar = confirm( "Deseja fechar a janela?" ); if ( fechar ) { alert ( "Obrigado pela visita!" ); window.close(); }
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
36
A janela prompt permite uma interao direta do usurio com seu cdigo. Ela aceita dois parmetros: O primeiro define a mensagem exibida ao seu usurio e o segundo define o valor padro que ir aparecer quando a janela se abrir. O valor digitado na caixa pode ser atribudo a um varivel Exemplo
var nome var cor = prompt( "Qual o seu nome?" ); = prompt( "Qual a sua cor favorita?", "cinza" );
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
37
Exemplo
O que faz o cdigo JS na pgina HTML abaixo? <html> <head> <title>Esse o ttulo inicial</title> <script> var titulo = prompt( "Digite um ttulo para a pgina", document.title ); var muda = confirm("Deseja mudar o ttulo da pgina?"); if (! muda) { alert("O ttulo da pgina no ser alterado."); } else { window.document.title=titulo; document.write("O ttulo da pgina agora " + titulo); } </script> </head> <body> </body> </html>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
38
Funo: Definies
Funes so criadas a partir do agrupamento de vrias de linhas de cdigo que resolvem um problema especfico Devem conter uma pequena quantidade de linhas e ser o mais genrica possvel Uma funo pode ser reaproveitada Diminui a complexidade do cdigo, pois os problemas so divididos em problemas menores Aumenta a legibilidade do cdigo O cdigo de uma funo no executado at que a funo seja explicitamente acionada
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
39
Funo: Estrutura
Podemos definir teoricamente qualquer nome para uma funo O nome de uma funo segue as mesmas regras impostas na nomeao de variveis Uma funo pode receber um ou mais parmetros Parmetros so informaes que a funo recebe do seu chamador Os parmetros so tratados internamente pela funo como uma varivel qualquer Uma funo pode retornar um (e apenas um) resultado qualquer
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
40
Funo: Exemplo
A funo abaixo pode ser reaproveitada em qualquer ocasio onde se queira uma confirmao sobre o fechamento da janela do navegador. function fecharJanela() { var fechar = confirm(Deseja fechar a janela?); if (fechar == true) { window.close(); } }
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
41
Funo: Exemplo
A funo abaixo recebe como argumentos as notas do primeiro e segundo semestre de um aluno, calculando a mdia de acordo com os critrios estabelecidos pela Uniban. function mediaUniban(NS1,NS2) { var media = (NS1 * 0,3) + (NS2 * 0.7); alert(A mdia do aluno : + media); }
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
42
Funo: Chamada
Uma funo pode ser acionada em qualquer parte do cdigo Basta fazer uma referncia ao nome da funo, seguidos de parnteses e parmetros da funo (se houver)
Exemplo 2: Chamada de funo com parmetros <script> var notaSem1 = prompt(Digite a nota do 1 Sem:); var notaSem2 = prompt(Digite a nota do 2 Sem:); mediaUniban(notaSem1,notaSem2); </script>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
43
Funo: Retorno
Uma funo pode retornar um resultado para o seu chamador Isso possvel atravs da palavra-chave return Declarao da funo
function mediaUniban(NS1,NS2) {
var media = (NS1 * 0,3) + (NS2 * 0.7); return media; }
Chamada da funo <script> var notaSem1 = prompt(Digite a nota do 1 Sem:); var notaSem2 = prompt(Digite a nota do 2 Sem:); var media = mediaUniban(notaSem1,notaSem2); alert(A mdia do aluno : + media); </script>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
44
Funo: Eventos
Uma funo pode ser acionada a partir de um evento em uma tag HTML Cdigo HTML que aciona a funo responsvel por fechar uma janela (definida anteriormente)
<input type=button value=Fechar onClick=fecharJanela();>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
45
Objeto Math
Quando for necessrio realizar operaes mais complexas, utilize o objeto Math. O objeto Math contm uma lista das constantes matemticas mais comuns
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
46
Constantes Matemticas
Nome E LN10 LN2 LOG10E LOG2E PI SQRT1_ 2 SQRT2 Descrio Base dos logaritmos naturais e 2,718 Logaritmo natural de 10 2,302 Logaritmo natural de 2 0,693 Logaritmo base 10 de e 0,434 Logaritmo base 2 de e 1,442 Nmero 3,1416 Exemplo de uso e = Math.E; l10 = Math.LN10; l2 = Math.LN2; l10e = Math.LOG10E; l2e = Math.LOG2E; pi = Math.PI; r12 = Math.SQRT1_2; r2 = Math.SQRT2;
www.arruda.eti.br/uniban 47
roberto.arruda@gmail.com
Funes Matemticas
acos Retorna o arco co-seno, em radianos, de um nmero (x no exemplo). O valor de x deve estar entre -1 e 1. Fora disso, retorna NaN. O resultado dado na faixa de - /2 a /2 radianos. Exemplo: y = Math.acos(x);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
48
Funes Matemticas
asin Retorna o arco seno, em radianos, de um nmero (x no exemplo). O valor de x deve estar entre -1 e 1. Fora disso, retorna NaN. O resultado dado na faixa de - /2 a /2 radianos. Exemplo: y = Math.asin(x);
atan Retorna o arco tangente, em radianos, de um nmero (x no exemplo). O resultado dado na faixa de - /2 a /2 radianos. Exemplo: y = Math.atan(x);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
49
Funes Matemticas
atan2 Retorna o arco tangente, em radianos, do quociente de dois nmeros (no exemplo, x dividendo e y divisor). O resultado dado na faixa de - /2 a /2 radianos. Num sistema de coordenadas retangulares, o ngulo no sentido anti-horrio que o segmento de reta da origem at o ponto (x,y) faz com a horizontal. Neste caso, y deve ser o primeiro parmetro. Exemplo: t = Math.atan2(x,y);
ceil Retorna o menor inteiro maior ou igual ao nmero dado. Por exemplo: para x = 30.75 retorna 31 e para x = -30.75 retorna -30. Exemplo: i = Math.ceil(x);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
50
Funes Matemticas
cos Retorna o co-seno de um nmero que representa um ngulo em radianos (x no exemplo). O resultado, conforme definio matemtica da funo, est na faixa de -1 a 1. Exemplo: y = Math.cos(x);
exp Retorna o nmero e (base dos logaritmos naturais) elevado ao argumento (x no exemplo). Exemplo: y = Math.exp(x);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
51
Funes Matemticas
floor Retorna o maior inteiro menor ou igual ao nmero dado. Por exemplo: para x = 30.75 retorna 30 e para x = -30.75 retorna -31. Exemplo: i = Math.floor(x);
log Retorna o logaritmo natural (base e) de um nmero (x no exemplo). Se x = 0, retorna -Infinity. Se x < 0, retorna NaN porque est fora da faixa. Exemplo: y = Math.log(x);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
52
Funes Matemticas
max Retorna o maior de dois nmeros dados como argumentos (x e y no exemplo). Exemplo: m = Math.max(x,y);
min Retorna o menor de dois nmeros dados como argumentos (x e y no exemplo). Exemplo: m = Math.min(x,y);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
53
Funes Matemticas
pow Retorna a base elevada ao expoente. No exemplo dado abaixo, x a base e y o expoente, isto , p = xy. Exemplo: p = Math.pow(x,y);
random Retorna um nmero pseudo-aleatrio entre 0 e 1. gerado a partir da hora atual. Exemplo: a = Math.random();
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
54
Funes Matemticas
round Retorna o valor de um nmero arredondado para o inteiro mais prximo. Se a parte fracionria igual ou maior que 0.5, arredondado para o inteiro acima. Se menor que 0.5, arredondado para o inteiro abaixo. Exemplo: r = Math.round(x);
sin Retorna o seno de um nmero que representa um ngulo em radianos (x no exemplo). O resultado, conforme definio matemtica da funo, est na faixa de -1 a 1. Exemplo: y = Math.sin(x);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
55
Funes Matemticas
tan Retorna a tangente de um nmero que representa um ngulo em radianos (x no exemplo). Exemplo: y = Math.tan(x);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
56
eval Executa uma expresso na linguagem Javascript. Exemplo: var soma = "3 + 5" eval("document.write(" + soma +")");
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
57
parseInt Utilizada para converter um valor informado em um nmero inteiro Exemplos: var num = parseInt("3.38"); // num receber o nmero 3 var num = parseInt("16XX3U"); // num receber o nmero nmero 16
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
58
parseFloat Utilizada para converter um valor informado em um nmero real, de ponto flutuante Exemplos: var num = parseFloat("3.38"); // num receber o nmero 3.38 var num = parseFloat("16.8XX3U"); // num receber o nmero nmero 16.8
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
59
isNaN Algumas vezes a converso utilizando parseInt ou parseFloat pode falhar. Para verificar se a converso foi bem sucedida, utiliza-se a funo isNaN A funo isNaN retorna verdadeiro se o resultado da converso no for um nmero vlido.
Exemplo: var preco = parseFloat("R$ 2.78") if ( isNaN(preco) ) { alert("No foi possvel converter"); } A varivel preco receber o valor NaN (Not a Number)
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
60
Para que serve o cdigo abaixo? Complete-o. <html> <head> <title>Jogo de Dados</title> <script> var aposta = prompt("Qual a sua aposta? (1-6)"); aposta = parseInt(aposta); if ( isNaN(aposta) ) { alert("Numero invalido."); return; }
var lance = Math.round( Math.random() * 5 ) + 1; alert(lance); </script> </head> <body> </body> </html>
Introduo Tecnologia Web roberto.arruda@gmail.com www.arruda.eti.br/uniban 61
Objeto String
Uma String consiste de uma seqncia de caracteres, delimitados por aspas duplas (), embora aspas simples () tambm sejam permitidas Toda String possui uma srie mtodos auxiliares que permitem modificar a sequencia de caracteres. Toda String possui o atributo length, que permite descobrir a quantidade de caracteres da String. Exemplo: var curso = ITW; var num = curso.length; // retorna o 3 na varivel num
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
62
Devolve o caracter que h na posio indicada como ndice. As posies de um String comeam em 0 e terminam em String.length - 1 Exemplo: var curso = "ITW"; var l = curso.charAt(1); // retorna T na varivel l
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
63
Forma geral: indexOf(caracter,inicio) Devolve a posio da primeira ocorrncia do caracter indicado como parmetro. Se o caracter no for encontrado, ser retornado o valor -1 O segundo valor informado para a funo indica a posio onde ser iniciada a procura Exemplo: var curso = "ITW"; var pos = curso.indexOf("W"); // retorna 2 na varivel pos = curso.indexOf("M"); // retorna -1 na varivel pos
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
64
anchor(texto) Cria um link no documento HTML com o atributo NAME igual a texto informado. Exemplo: str = "Incio da pgina"; document.write(str.anchor("inicio_pagina")); Produz o mesmo resultado da seguinte linha HTML: <A NAME="inicio_pagina">Incio da pgina</A>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
65
big() Faz a string aparecer como se estivesse entre as marcas <BIG> e </BIG> de HTML. Exemplo: str = "Bom dia"; document.write(str.big()); Produz o mesmo resultado da seguinte linha HTML: <BIG>Bom dia</BIG>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
66
bold() Faz a string aparecer em negrito como se estivesse entre as marcas <B> e </B> de HTML. Exemplo: str = "Bom dia"; document.write(str.bold()); Produz o mesmo resultado da seguinte linha HTML: <B>Bom dia</B>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
67
charCodeAt(posicao) Retorna o valor ASCII do caractere na posio especificada. Exemplo (a varivel val ser 97, o valor ASCII de "a"): str = "Bom dia"; val = str.charCodeAt(6);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
68
concat(str2, str3 [, ..., strN]) Combina duas ou mais strings, retornando uma nova. str2, ..., strN so as strings a combinar. Exemplo (a varivel nova_str contm "Bom dia"): str = "Bom "; nova_str = str.concat("dia");
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
69
fontcolor(cor) Exibe a string na cor especificada, como se estivesse entre as marcas <FONT COLOR=cor> e </FONT> de HTML. O parmetro cor uma string literal da cor reconhecida pelo navegador ou na forma RGB hexadecimal. Por exemplo, "FF0000" para vermelho. Exemplo: str = "Bom dia"; document.write(str.fontcolor("blue")); Produz o mesmo resultado da seguinte linha HTML: <FONT COLOR="blue">Bom dia</FONT>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
70
fontsize(tamanho) Exibe a string no tamanho de fonte especificado, como se estivesse entre as marcas <FONT SIZE=tamanho> e </FONT> de HTML. Exemplo: str = "Bom dia"; document.write(str.fontsize("3")); Produz o mesmo resultado da seguinte linha HTML: <FONT SIZE="3">Bom dia</FONT>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
71
italics() Faz a string ser exibida em itlico, como se estivesse entre as marcas <I> e </I> de HTML. Exemplo: str = "Bom dia"; document.write(str.italics()); Produz o mesmo resultado da seguinte linha HTML: <I>Bom dia</I>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
72
link(hRef) Cria um link de hipertexto HTML para a URL (absoluta ou relativa) dada por hRef. Exemplo: str = "Pgina inicial"; url = "http://www.pudim.com.br"; document.write(str.link(url); Produz o mesmo resultado da seguinte linha HTML: <A HREF="http://www.pudim.com.br">Pgina inicial</A>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
73
slice(inicio, fim) Extrai parte de uma string, retornando uma nova. inicio o ndice base zero inicial e fim o ndice base zero final. Se no especificado, a operao se d at o final da string. Valor negativo para fim indica deslocamento a partir do final. Por exemplo, slice(1,-1) extrai do segundo at o penltimo caracter. Exemplo (escreve "tarde"): str = "Boa tarde"; str_1 = str.slice(4); document.write(str_1);
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
74
substr(ini [, compr]) Extrai parte de uma string, comeando no ndice base zero dado por ini. Se este negativo, significa ndice a partir do final da string. O parmetro opcional compr nmero de caracteres a extrair a partir do ndice dado. Se omitido, a operao se d at o final da string. Exemplo (resulta "dia"): str = "Bom dia"; document.write(str.substr(4,3));
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
75
substring(ndx1, ndx2) Extrai parte de uma string, comeando do ndice base zero ndx1 e terminando, mas no incluindo, no ndice base zero ndx2. Exemplo (resulta "Bom"): str = "Bom dia"; document.write(str.substring(0,3));
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
76
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
77
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
78
Eventos
Ocorrem durante a interao do usurio com a pgina HTML. Ao digitar o valor em um campo de formulrio, ao fechar a janela, etc. O programador pode definir aes a serem executadas na ocorrncia de um evento Geralmente os eventos so previstos na tag HTML onde ele ocorrer Os eventos podem ser de um dos cinco tipos abaixo: Mouse Formulrio Foco e seleo Teclado Janela
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
79
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
80
Eventos: onBlur
Executa um cdigo JavaScript quando um elemento, janela ou quadro, perde o foco. Usado para Button, Checkbox, FileUpload, Layer, Password, Radio, Reset, Select, Submit, Text, Textarea, window, na forma onBlur="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <INPUT TYPE="text" VALUE="" NAME="nome" onBlur="verificarNome(this.value)"> Onde "verificarNome(n)" uma funo (a ser desenvolvida) para verificar se o usurio inseriu um nome vlido.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
81
Eventos: onFocus
Executa um cdigo JavaScript quando o objeto recebe o foco. Usado para Button, Checkbox, FileUpload, Layer, Password, Radio, Reset, Select, Submit, Text, Textarea, window, na forma onFocus="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <INPUT TYPE="text" VALUE="" NAME="nome" onFocus="verificarNome(this.value)"> Onde "verificarNome(n)" uma funo (a ser desenvolvida) para verificar se um nome vlido existe no campo toda vez que esse campo recebe o foco.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
82
Eventos: onChange
Executa um cdigo JavaScript quando um campo perde o foco e tem seu valor modificado. Usado para FileUpload, Select, Text, Textarea, na forma onChange="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <INPUT TYPE="text" VALUE="" NAME="nome" onChange="verificarNome(this.value)"> Onde "verificarNome(n)" uma funo (a ser desenvolvida) para verificar se o usurio inseriu um nome vlido.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
83
Eventos: onSelect
Executa um cdigo JavaScript quando o usurio seleciona um texto em uma caixa. Usado para Text, Textarea, na forma onSelect="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
84
Eventos de Teclado
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
85
Eventos: onKeyPress
Executa um cdigo JavaScript quando o usurio pressiona ou mantm pressionada uma tecla. Usado para document, Image, Link, Text, Textarea, na forma onKeyPress="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo:
//formato dd/mm/aaaa function formataData(campo) { var tecla = window.event.keyCode; if (tecla >= 48 && tecla <= 57) { vr = campo.value; vr = vr.replace("/", ""); vr = vr.replace("/", ""); tam = vr.length + 1; if ( tam > 2 && tam < 5 ) { campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, tam ); } if ( tam >= 5 && tam <= 10 ) { campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); } } else { event.returnValue = false; } } . . <input type="text" name="dtExtrato" maxlength="10" onkeypress="formataData(this);"/>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
86
Eventos: onKeyDown
Executa um cdigo JavaScript quando uma tecla pressionada. Usado para document, Image, Link, Text, Textarea, na forma onKeyDown="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo:
function verificaCampoNumerico(campo) { var isItWorks = false; var tecla = window.event.keyCode; if ((tecla >= 96 && tecla <= 105) || (tecla >= 48 && tecla <= 57) || (tecla == 46 || tecla == 8 || tecla == 9)) { isItWorks = true; } event.returnValue = isItWorks; return isItWorks; } . . . <input type="text" name="cpf" maxlength="22" onkeydown="verificaCampoNumerico(this)"/>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
87
Eventos: onKeyUp
Executa um cdigo JavaScript quando o usurio libera uma tecla que foi pressionada. Usado para document, Image, Link, Text, Textarea, na forma onKeyUp="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo:
<script language="JavaScript"> function maiusculas(campo) { campo.value=campo.value.toUpperCase(); } </script> . . . <input type="text" name="codigo maxlength="8" onkeyup="maiusculas(this)"/>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
88
Eventos do Mouse
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
89
Eventos: onMouseOver
Executa um cdigo JavaScript quando o usurio move o cursor de fora para dentro de uma determinada rea (mapa de imagem ou link). Usado para Layer, Link, na forma onMouseOver="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <A HREF="http://www.abc.com.br/" onMouseOver="window.status='Loja ABC - Tudo para seu micro'; return true">Empresa ABC</A> O cdigo dado exibe a mensagem na barra de status do navegador sempre que o usurio passa o cursor sobre o link.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
90
Eventos: onMouseOut
Executa um cdigo JavaScript quando o usurio move o cursor de dentro para fora de uma determinada rea (mapa de imagem ou link). Usado para Layer, Link, na forma onMouseOut="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
91
Eventos: onClick
Executa um cdigo JavaScript quando um objeto clicado. Usado para Button, document, Checkbox, Link, Radio, Reset, Submit, na forma onClick="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo 1: <A HREF="http://www.abc.com.br/" onClick="return confirm('Abre ABC?')">Empresa ABC</A> Se o usurio clica no link, abre a caixa de confirmao. Se, nessa caixa, o boto Cancelar clicado, o link no aberto. Exemplo 2: <INPUT TYPE="button" VALUE="Resultado" onClick="calcular(this.form)"> Ao clicar no boto, chamada a funo "calcular(a)" (a ser desenvolvida).
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
92
Eventos: onDblClick
Executa um cdigo JavaScript quando um duplo clique dado no objeto. Usado para document, Link, na forma onDblClick="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo:
<form> <INPUT Type="button" Value="Teste" onDblClick="alert('Foi dado um duplo clique')">
</form>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
93
Eventos: onMouseDown
Executa um cdigo JavaScript quando o usurio pressiona um boto do mouse. Usado para Button, document, Link, na forma onMouseDown="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
94
Eventos: onMouseUp
Executa um cdigo JavaScript quando o usurio libera um boto do mouse. Usado para Button, document, Link, na forma onMouseUp="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
95
Eventos: onMouseMove
Executa um cdigo JavaScript quando o usurio move o cursor com o mouse. Usado na forma onMouseMove="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Notar que no associado a nenhum evento em particular por ser bastante freqente.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
96
Eventos de Formulrio
onSubmit onReset
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
97
Eventos: onSubmit
Executa um cdigo JavaScript quando o usurio clica o boto Submeter de um formulrio. Usado para Form, na forma onSubmit="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <FORM NAME="form1" onSubmit="return verificarDados(this)"> . </FORM> No cdigo dado, a funo a ser desenvolvida, "verificarDados(a)", deve retornar True se os dados so vlidos e False caso contrrio.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
98
Eventos: onReset
Executa um cdigo JavaScript quando o usurio clica o boto Reset de um formulrio. Usado para Form, na forma onReset="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <FORM NAME="form1" onReset="alert('Considerado meio padro de envio')"> Meio de envio: <INPUT TYPE="text" NAME="forma" VALUE="Via area" SIZE="2"_> <INPUT TYPE="reset" NAME="padrao" VALUE="Limpar"> </FORM> O cdigo dado avisa que o meio padro ser considerado se o usurio clicar no boto "Limpar" do formulrio.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
99
Eventos de Janela
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
100
Eventos: onAbort
Executa um cdigo JavaScript quando o usurio interrompe o carregamento de uma imagem, por exemplo, com um clique no boto Parar. Deve ser usado com o objeto imagem (IMG) de HTML. Exemplo: <IMG NAME="foto" SRC="minha_foto.gif" onAbort="alert('Voc no viu minha foto')">
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
101
Eventos: onError
Executa um cdigo JavaScript quando um erro ocorre no carregamento de uma janela ou imagem. Usado para Image, window, na forma onError="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. O evento s ocorre em caso de erro de sintaxe no cdigo ou erro em tempo de execuo do mesmo. No reporta erros do navegador. Se forado para nulo, suprime mensagens de erro. Exemplo 1: <IMG NAME="foto" SRC="foto.gif" ALIGN="left" BORDER="2" onError="null"> Exemplo 2: <SCRIPT language="javascript"_> window.onerror=null </SCRIPT> <IMG NAME="foto" SRC="foto.gif" ALIGN="left" BORDER="2"> O primeiro exemplo suprime mensagens de erro apenas no carregamento da imagem foto.gif. O segundo exemplo suprime para toda a janela.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
102
Eventos: onLoad
Executa um cdigo JavaScript quando o navegador termina o carregamento de uma janela, de todos os quadros dentro de um FRAMESET, de uma imagem. Usado para Image, Layer, window, na forma onLoad="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Se usado para uma imagem gif animada, executado para cada parte da animao. Exemplo 1: <script language="javascript"> function nomeImagem(img){ alert('Carregada imagem ' + img.name); } </script> <IMG NAME="foto" SRC="foto.gif" ALIGN="left" BORDER="2" onLoad="nomeImagem(this)"> O cdigo exibe o nome da imagem exibida.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
103
Eventos: onLoad
Exemplo 2: <BODY onLoad="window.alert("Este o nosso site!")> O cdigo exibe uma mensagem sempre que um usurio abre a pgina.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
104
Eventos: onUnload
Executa um cdigo JavaScript quando o usurio sai da janela. Usado para window, na forma onUnload="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <BODY onUnload="terminar()"> No cdigo dado, a funo a ser desenvolvida, "terminar()", deve fazer alguma ao que for necessria quando o usurio sair da janela.
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
105
Eventos: onResize
Executa um cdigo JavaScript quando o usurio redimensiona uma janela ou um frame. Usado para window, na forma onResize="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo:
<script language="javascript"> function abrirJanela(){ var janela; janela=window.open("janela.htm",null,"width=200, height=200, resizable=yes, menubar=no, location=no"); janela.captureEvents(Event.RESIZE); janela.onresize=informar; } function informar(){ alert("Janela redimensionada para largura: " + this.outerWidth + "e altura: " +this.outerHeight); this.focus(); } </script>
O cdigo dado informa a nova largura e a nova altura sempre que a janela redimensionada.
Introduo Tecnologia Web roberto.arruda@gmail.com www.arruda.eti.br/uniban 106
Eventos: onDragDrop
Executa um cdigo JavaScript quando um objeto arrastado para a janela do navegador. Usado para window, na forma onDragDrop="algumaCoisa", onde "algumaCoisa" uma funo ou cdigo de JavaScript. Exemplo: <html> <head><title>teste</title> window.onDragDrop=alert(Drag Drop); </head> <body> </body> </html>
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
107
roberto.arruda@gmail.com
www.arruda.eti.br/uniban
108