curso de programação em javascript e dhtml

Upload: wiltonmjr

Post on 20-Jul-2015

84 views

Category:

Documents


2 download

TRANSCRIPT

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

ndicePARTE I Introduo ao JavaScript1 Introduo........................................................................................................... 5 2 Inserir JavaScript numa pgina da Web...........................................................5 O elemento ........................................................................................... 5 3 Comentrios e blocos de cdigo...................................................................... 6 Comentrios....................................................................................................... 6 Blocos de cdigo................................................................................................ 7 4 Variveis.............................................................................................................. 7 Declarao de Variveis.....................................................................................7 Os valores das Variveis.................................................................................... 8 Converses de Valores...................................................................................... 8 5 Expresses Literais............................................................................................ 9 Representao de valores..................................................................................9 Nmeros inteiros................................................................................................ 10 Nmeros com vrgula flutuante...........................................................................11 Valores lgicos (booleanos)............................................................................... 11 Expresses de texto........................................................................................... 11 Caracteres de escape........................................................................................ 12 6 Cadeias de variveis (Array) .............................................................................13 7 Operadores..........................................................................................................14 Operadores de atribuio de valor..................................................................... 14 Operadores de comparao...............................................................................14 Operadores aritmticos...................................................................................... 15 Operadores lgicos............................................................................................ 15 8 Objetos.................................................................................................................16 Exemplos prticos com objetos..........................................................................16 9 Definir uma Funo............................................................................................ 17 10 As instrues condicionais if...else................................................................ 19 11 Executar cdigo repetidamente...................................................................... 19 Ciclos for.............................................................................................................19 Ciclos while........................................................................................................ 21

PARTE II Programao em JavaScript1 Reviso de matrias importantes......................................................................23 2 Os operadores da linguagem JavaScript......................................................... 38 Operadores aritmticos...................................................................................... 38 Operadores de atribuio (formas abreviadas) ................................................. 38 Operadores de comparao...............................................................................38 Operadores lgicos............................................................................................ 39

2

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Adio de texto...................................................................................................44 3 Instrues condicionais.................................................................................... 45 As instrues if e if ... else..................................................................................45 Atribuio condicional de valores....................................................................... 49 A instruo switch...............................................................................................50 4 Execuo repetida de cdigo............................................................................ 54 Ciclos for.............................................................................................................55 Ciclos while e ciclos do...while........................................................................... 57 5 Cdigo robusto: as instrues try ... catch......................................................59 6 Construir e usar uma funo............................................................................. 63 Funes com um nmero fixo de argumentos................................................... 64 Funes com um nmero varivel de argumentos............................................ 66 7 Trabalhar com objetos....................................................................................... 71 Criar um novo objeto.......................................................................................... 72 Propriedades de objetos.....................................................................................72 Mtodos de objetos............................................................................................ 72 Objetos definidos pelo padro ECMAScript....................................................... 73 As declaraes this e with.................................................................................. 73 8 Objeto Array........................................................................................................ 76 Propriedades do objeto Array............................................................................. 76 Mtodos do objeto Array.................................................................................... 76 Colees.............................................................................................................77 9 - Objeto Date.............................................................................. 81 Mtodos do objeto Date.............................................................................. 82 Mtodos estticos do objeto Date...................................................................... 84 10 Objeto Math....................................................................................................... 89 Propriedades do objeto Math............................................................................. 89 Mtodos do objeto Math..................................................................................... 89 11 Objeto String.................................................................................................... 94 Propriedades do objeto String............................................................................ 94 Mtodos do objeto String....................................................................................95 Mtodos estticos do objeto String.................................................................... 95

PARTE III HTML Dinmico1 Para que serve o HTML Dinmico?...................................................................100 2 O DHTML ainda pouco aproveitado. Porqu?.............................................. 108 3 Que ferramentas vamos usar?.......................................................................... 109 Os objetos do DOM............................................................................................ 109 Objetos principais usados em DHTML............................................................... 109 4 O objeto window................................................................................................. 111 Propriedades...................................................................................................... 111 Colees.............................................................................................................112

3

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Mtodos..............................................................................................................112 5 O objeto document............................................................................................. 122 Propriedades...................................................................................................... 122 Colees.............................................................................................................123 Mtodos..............................................................................................................123 6 O objeto event..................................................................................................... 132 Propriedades...................................................................................................... 132 Funes de compatibilidade para o objeto event............................................... 132 7 O objeto navigator.............................................................................................. 144 Propriedades...................................................................................................... 144 8 O objeto screen...................................................................................................146 Propriedades...................................................................................................... 146 9 O objeto location................................................................................................ 147 Propriedades...................................................................................................... 148 Mtodos..............................................................................................................148 10 O objeto history................................................................................................ 150 Propriedades...................................................................................................... 150 Mtodos..............................................................................................................150

PARTE IV Controle do Elementos HTML11 Objetos que representam elementos do HTML............................................. 151 anchor.................................................................................................................151 applet..................................................................................................................153 embed.................................................................................................................154 frame.................................................................................................................. 154 frameset..............................................................................................................155 form.................................................................................................................... 155 iframe..................................................................................................................158 image..................................................................................................................160 input....................................................................................................................163 object.................................................................................................................. 168 option..................................................................................................................169 select.................................................................................................................. 172 table....................................................................................................................178 tablecell.............................................................................................................. 186 tablerow.............................................................................................................. 189 textarea...............................................................................................................193 12 Mais controle sobre os elementos do HTML..................................................196 Propriedades intrnsecas dos elementos do HTML............................................197 A propriedade style.............................................................................................197 A propriedade innerHTML.................................................................................. 198 A propriedade id e o mtodo getElementById()................................................. 199 Posicionamento e medio de elementos em DHTML...................................... 201

PARTE I: Introduo ao JavaScript1. Introduo

4

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

O JavaScript uma linguagem de programao simples criada para dar mais interatividade e maior funcionalidade s pginas da Web. Tendo sido inicialmente desenvolvida pela Netscape, a linguagem JavaScript acabou por dar origem especificao tcnica ECMAScript, que um padro oficial reconhecido pela indstria. Apesar desta linguagem ser mais conhecida pelo nome de JavaScript, e de a verso produzida pela Microsoft ter recebido o nome de JScript, a verdade que se tratam de implementaes que sendo fiis norma ECMAScript lhe acrescentaram novas funcionalidades teis, mas respeitando sempre as especificaes oficiais. O cdigo escrito em JavaScript destina-se a ser executado pelo web browser quando a pgina HTML que o contm visualizada. Ele uma parte integrante da pgina e permite que o browser seja capaz de tomar decises quanto ao modo com que o contedo apresentado ao usurio e como pode ser manipulado.

2. Inserir JavaScript numa pgina da Web2.1 O elemento Os browsers capazes de executar cdigo escrito em JavaScript reconhecem o elemento . dentro desse elemento que se coloca todo o cdigo, como ilustra o exemplo seguinte: A Minha Pgina com JavaScript alert("Seja bem vindo(a) minha pgina!"); Aqui colocamos o contedo da pgina em HTML

Repare que no final da linha de cdigo colocamos o caractere ; o qual d ao interpretador de JavaScript a indicao de que a instruo termina nesse local. O JavaScript no nos obriga a terminar as instrues deste modo, bastando que mudemos de linha para que ele perceba que a instruo chegou ao fim. No entanto isso torna mais difcil a localizao dos erros e pode tambm contribuir para gerar mais erros. conveniente que os principiantes terminem todas as instrues com o caractere ; e, se preferirem, s deixem de o fazer quando se sentirem completamente vontade com a linguagem. Graas ao JavaScript podemos fazer com que os objetos grficos apresentados na pgina (como por exemplo uma imagem, um boto ou uma ligao de hipertexto) respondam dinamicamente s aes do usurio. Para que isso acontea basta adicionar um novo atributo ao elemento responsvel pela apresentao desse objeto e escrever o cdigo que ao ser executado dar origem ao

5

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

comportamento esperado. O exemplo seguinte executa uma caixa de dilogo com um agradecimento sempre que o link for clicado: Visite o W3C

Certamente j conhece bem o atributo href="...", que serve para especificar o URL da pgina a que a ligao de hipertexto conduz, mas note que o atributo onclick="..." bem diferente porque o seu contedo constitudo por cdigo JavaScript, que neste caso faz aparecer a caixa de dilogo com a mensagem de agradecimento. (Se no conseguir compreender o modo como o texto contido no atributo onclick consegue fazer isto no se preocupe, esta tcnica, entre outras, sero explicadas durante este curso).

3. Comentrios e blocos de cdigo3.1 ComentriosOs comentrios permitem-nos descrever o cdigo JavaScript que produzimos tornando-o mais legvel e mais fcil de manter. Se comentar adequadamente o cdigo que produz, quando mais tarde precisar de o melhorar ou fazer alteraes ser mais fcil e rpido perceber o que fez antes. Se voc desenvolver um cdigo para partilhar com outras pessoas ento os comentrios so ainda mais importantes para que os outros percebam aquilo que voc escreveu. Em JavaScript podemos usar comentrios com uma nica linha e comentrios com vrias linhas. Os comentrios com uma nica linha comeam com os caracteres //. Isto d ao interpretador de JavaScript a indicao de que o resto da linha um comentrio, deste modo este ignora o resto da linha, continuando a interpretar o cdigo na linha seguinte. Um comentrio que se estende por vrias linhas comea com a seqncia de caracteres /* e continua at ser encontrada a seqncia de caracteres */, que marcam o fim do comentrio. Ao encontrar a seqncia /* o interpretador de JavaScript procura imediatamente a seqncia de finalizao */, continuando a a interpretao do cdigo e ignorando o que est no meio. Abaixo esto alguns exemplos de comentrios em JavaScript.

6

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C// Este um comentrio com uma nica linha /* Este comentrio ocupa uma s linha mas podia ocupar mais */ /* Este comentrio ocupa vrias linhas. Tudo o que for escrito aqui dentro ser ignorado pelo interpretador de JavaScript */

3.2 Blocos de cdigoQuando temos que executar funcionalidades no triviais quase sempre necessrio executar seqncias de instrues compostas por vrias linhas. Se essas seqncias tiverem de ser executadas condicionalmente (veja por exemplo a descrio da instruo if mais frente), ou se formarem uma funo, ento elas constituem um bloco e tm de ser agrupadas. Isso se consegue colocando-as entre chaves ({ }.){ } // isto um bloco de cdigo var i = 0; var j = i * 3;

4. VariveisO que so as Variveis? As variveis so objetos que servem para guardar informao. Elas permitemnos dar nomes a cada um dos fragmentos de informao com que temos que lidar. Se esses nomes forem bem escolhidos fica fcil saber onde que se deve guardar um determinado pedao de informao e onde que se pode ir buscar a informao que se guardou antes. Para evitar erros e aumentar a produtividade importante escolher nomes que descrevam aquilo que cada varivel guarda. Assim, se escrevermos um programa que divide dois nmeros recomendado chamar dividendo, divisor e quociente os nmeros envolvidos na operao. Escolhas como por exemplo n1, n2 e n3, apesar de funcionarem, provocam confuso e do origem a erros difceis de detectar porque tornam o cdigo mais difcil de ler. importante que saibamos quais as regras que temos de respeitar quando escolhemos um nome para uma varivel:

Todos os nomes tm que comear com uma letra ou com o caractere _. Os restantes caracteres que compem o nome podem igualmente conter nmeros. Nunca se esquea que para o JavaScript letra maiscula e letra minscula so coisas diferentes e que, por exemplo, as variveis variavel1, Variavel1 e vaRiavel1 so trs objetos distintos.

4.1 Declarao de VariveisAo ato de criar uma varivel se d o nome de declarao. As variveis que so declaradas fora de qualquer funo (mais frente iremos ver exemplos de declaraes de variveis e o que so funes) so designadas por variveis globais. Aqui o termo global significa que a varivel em causa pode ser utilizada em qualquer parte do script; ela est permanentemente acessvel. Quando uma varivel declarada dentro de uma funo ela ser uma varivel local porque s pode ser utilizada dentro dessa funo.

7

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Se tentarmos acessar uma varivel local fora da funo em que ela foi declarada ser gerado um erro porque a varivel s existe no universo da funo em que foi declarada; ela no faz parte do mundo exterior a essa funo e como tal no pode ser utilizada. A seguir temos alguns exemplos de declarao de variveis:dividendo = 12; divisor = 3; sabor = "Doce"; pi = 3.14159;

Nestes exemplos todas as variveis declaradas sero variveis globais. Se quisermos declarar variveis cuja existncia se limite a uma pequena seo do cdigo teremos de usar a declarao var, assim: var dividendo = 12; Se usarmos esta declarao fora de qualquer funo ento, porque a varivel declarada na base da estrutura de cdigo, ela ser global. Temos assim que a declarao var serve para limitar o contexto em que a varivel existe e que: As variveis declaradas sem a declarao var so variveis globais; As variveis declaradas usando a declarao var existem apenas no contexto em que foram definidas.

Antes de comear a escrever cdigo em JavaScript importante planejar o modo como este ser organizado. Deve-se comear a identificar os dados que vo ser utilizados. A seguir escolhem-se os nomes das variveis que vo guardar esses dados e s depois que se comea a escrever o cdigo propriamente dito.

4.2 Os valores das VariveisA linguagem JavaScript capaz de reconhecer trs tipos de dados: Nmeros, como por exemplo 12 ou 3.14159 Texto (variveis de tipo String), como por exemplo: "Seja Bem Vindo(a)!" Valores lgicos (true ou false) null, que uma palavra especial que significa que a varivel em causa no guarda qualquer valor, est vazia.

Como iremos ter oportunidade de aprender neste e nos cursos seguintes, usando apenas estes tipos de dados podemos executar muitas aes teis nas nossas pginas da Web.

4.3 Converses de ValoresA linguagem JavaScript exige pouco trabalho ao programador para definir o tipo de dados que uma varivel deve guardar. o prprio interpretador de JavaScript que em funo dos dados que recebe decide se estes representam um nmero, texto (string), um valor lgico, ou nada (null). Assim, se escrever:var resposta = 42;

o interpretador decidir guardar internamente a varivel resposta como um nmero inteiro, mas se escrevermos:

8

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cvar resposta = 42; resposta = "JavaScript muito fcil de aprender.";

ao chegar segunda linha de cdigo o interpretador mudar de idia e a varivel resposta deixar de ser guardada internamente como um nmero inteiro para passar a ser guardada como uma String (texto). Esta converso no tipo da varivel acontece de forma automtica e o programador no precisa fazer nada para que ela acontea. Esta liberdade que nos dada pelo JavaScript destina-se apenas a simplificar a escrita do cdigo. Quando mal utilizada ela pode dar origem a cdigo difcil de ler e a erros. As regras de boa programao dizem que ao definir uma varivel o programador deve decidir qual o tipo de dados (nmero, texto ou valor lgico) que esta ir conter e no dever escrever cdigo que provoque uma converso no tipo de dados que a varivel guarda. Sempre que uma tal converso for necessria dever ser definida uma nova varivel para guardar o resultado da converso, mantendo inalterados os tipos das variveis antigas. Na prtica esta recomendao raramente seguida.

5. Expresses Literais5.1 Representao de valoresAs expresses literais representam valores fixos. Elas so escritas diretamente pelo programador ao produzir o script. Exemplos de expresses literais podem ser: 123 ou "Isto uma expresso literal". As expresses literais podem ser usadas de diversas maneiras, como ilustra o exemplo de cdigo apresentado a seguir (o exemplo seguinte usa as instrues if/else que s so estudadas mais frente): = 13) document.write("Boa tarde. Seja bem vindo senhor(a) " + nome); else document.write("Seja bem vindo! Almoa conosco?"); } -->

9

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Na primeira linha usamos a expresso literal "visitante" para dar um valor inicial varivel nome. Na segunda linha usamos uma expresso literal numrica para dar um valor varivel hora. O resto do cdigo usa as expresses literais 12 e 13 para determinar a parte do dia (manh, tarde ou hora de almoo) e cumprimentar usando o texto (expresso literal) mais adequado.

5.2 Nmeros inteirosOs nmeros inteiros podem ser expressos na forma decimal (base 10), hexadecimal (base 16) ou octadecimal (base 8). Um nmero decimal consiste numa seqncia de dgitos que nunca deve comear por 0 (zero). Se escrevermos um nmero com um zero no incio isso significa que se trata de um nmero escrito na forma octadecimal. Por outro lado, se no incio escrevermos os caracteres 0x (ou 0X) isso significa que o nmero est escrito na forma hexadecimal. Os nmeros escritos na forma decimal podem conter os dgitos (0-9), a forma octadecimal aceita apenas dgitos de (0-7) e a forma hexadecimal aceita os dgitos (0-9) mais as letras a-f e A-F. Exemplos de nmeros inteiros so: 42, 052, 0X2A, que representam todos o valor decimal 42. No exemplo seguinte as variveis i, j, k possuem todas o mesmo valor, apesar de serem usadas bases diferentes para as inicializar:

10

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

5.3 Nmeros com vrgula flutuanteUma expresso literal com vrgula flutuante representa um nmero que no inteiro mas que contm uma parte inteira e uma parte fracionria. Os nmeros 21.37 e -0.0764 so exemplos disto. A representao que a mquina constri para estes nmeros baseia-se na notao cientfica. Por exemplo, o nmero -7645.4532 igual a -7.64532 multiplicado por 10 elevado a 3, e escreve-se como -7.6454532E3, em que E3 representa 10 elevado a 3. Um outro exemplo o nmero 0.00045431, que representado na forma 4.5431E-4, ou seja 4.5431 multiplicado por 10 elevado a -4. Esta representao construda automaticamente pela mquina, o programador pode escrever o nmero na forma que mais lhe agradar.

5.4 Valores lgicos (booleanos)Estas expresses podem assumir apenas dois valores: true (verdadeiro) e false (falso).

5.5 Expresses de textoUma expresso de texto composta zero ou mais caracteres colocados entre aspas ("), como por exemplo "esta uma expresso de texto", ou entre apstrofos ('), como por exemplo 'esta outra expresso de texto'. Se comearmos a expresso com aspas temos a obrigao de usar aspas para a terminar, e se a iniciarmos com um apstrofo temos de usar outro apstrofo para a terminar. Alm dos caracteres normais, as expresses de texto podem conter os caracteres especiais apresentados na lista seguinte: Caractere \b \f \n \r \t \\ Significado backspace form feed new line carriage return tab backslash

Cada um destes caracteres produz o mesmo resultado que se obtm acionando a tecla indicada na segunda coluna. Assim o caractere \b equivale a acionar a tecla backspace (apagar o caractere esquerda). O caractere \n provoca uma mudana de linha tal como a tecla "enter". O caractere \ usado como prefixo dos outros caracteres especiais, o que faz tambm dele um caractere especial. Por isso, para obtermos este caractere temos de temos escrev-lo duas vezes (\\). Se o escrevermos uma nica vez ao invs de o obtermos estaremos tentando introduzir um outro caractere especial e o resultado ser diferente do que pretendemos. 11

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

5.6 Caracteres de escapeSe o caractere que vem a seguir a \ no pertencer lista anterior o seu efeito ser nulo, mas h duas excees: as aspas (") e o apstrofo ('). Se pretendemos escrever aspas dentro de uma expresso de texto temos de colocar o caractere \ antes delas, como mostra o exemplo seguinte:

Se ao invs de usar aspas usarmos apenas apstrofos teremos:

Porm, a melhor soluo para este problema no nenhuma das anteriores. Se usarmos apstrofos como caracteres delimitadores de uma string ento passamos a poder usar as aspas como parte do contedo sem qualquer problema, como se mostra a seguir:var texto = 'Ele leu o "Auto da Barca do Inferno" de Gil Vicente.'; document.write(texto);

Mas se quisermos colocar apstrofos no contedo a melhor forma de evitarmos os problemas consiste em usar aspas como caracteres delimitadores da string, como se mostra a seguir:var texto = "Ele leu o 'Auto da Barca do Inferno' de Gil Vicente."; document.write(texto);

12

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

6. Cadeias de variveis (Array)Uma cadeia de variveis (objeto Array) um objeto capaz de guardar muitos valores, tantos quanto a memria disponvel na mquina permitir. Cada uma das variveis que compem o array possui um ndice. Ilustremos isto com um exemplo:var frutas_tropicais = new Array("Goiaba", "Manga", "Maracuj"); var frutas_nacionais = new Array(3); frutas_nacionais[0] = "Ma"; frutas_nacionais[1] = "Cereja"; frutas_nacionais[2] = "Laranja";

Ao declararmos a varivel frutas_tropicais ns declaramos o Array e atribumos-lhe os valores numa nica operao. J no segundo caso primeiro declaramos o Array e s depois definimos os valores que ele deve conter. Neste caso temos que a varivel frutas_tropicais[2] possui o valor "Maracuj" e a varivel frutas_nacionais[0] possui o valor "Ma". Em JavaScript as variveis no tm um tipo definido, por isso um array pode conter valores de tipos diferentes que podemos alterar sempre que necessrio, como se mostra a seguir:

Se atribuirmos um valor a um elemento do array com um ndice mais alto do que o seu comprimento, o sistema JavaScript resolve o problema aumentando o tamanho do array at chegar ao ndice pretendido. isso que acontece no exemplo anterior quando se chega linha que tem sortido[6] = "Caderno"; Os arrays so objetos, e entre as suas propriedades conta-se a propriedade length, que nos d o nmero de elementos (variveis) que ele contm num determinado momento. Assim, se ao exemplo anterior juntarmos uma linha com o seguinte cdigo:

13

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cvar numeroDeElementos = sortido.length;

a varivel numeroDeElementos ficar com o valor 7 (repare que inserimos um elemento adicional com o ndice 6, o que fez crescer o array). De forma anloga se usarmos frutas_nacionais.length iremos obter 3.

7. OperadoresA linguagem JavaScript possui muitos operadores de diversos tipos. Aqui iremos abordar apenas os aspectos mais bsicos dos operadores disponveis.

7.1 Operadores de atribuio de valorUma das coisas que os operadores podem fazer fornecer um valor quilo que estiver sua esquerda. Se o que est esquerda for uma varivel ento o valor dela passar a ser aquilo que o operador forneceu, se for outro operador o valor fornecido ser usado como operando. Os operadores mais conhecidos so as quatro operaes aritmticas bsicas (adio, subtrao, multiplicao e diviso.) Para estes a linguagem JavaScript define as seguintes verses curtas: Verso curta x+=y x-=y x*=y x/=y Significado x=x+y x=x-y x=x*y x=x/y

Repare que aqui o sinal = no representa a igualdade matemtica. Ele serve apenas para indicar que a varivel que est sua esquerda deve passar a ter um valor igual ao valor da expresso que est sua direita. Se tivermos x=5 e y=7 a expresso x=x+y no representa uma igualdade matemtica mas sim a indicao que o valor de x deve passar a ser igual soma do valor que tem atualmente com o valor de y. Neste caso x passaria a valer 12.

7.2 Operadores de comparaoUm operador de comparao compara os valores que lhe so fornecidos (que designamos por operandos) e retorna um valor lgico que indica se o resultado da comparao verdadeiro ou falso. Os valores que recebe para analisar podem ser nmeros ou variveis de texto (string). Quando atuam sobre variveis de texto, as comparaes baseiam-se na forma como os caracteres esto ordenados seqencialmente. Esta ordenao baseia-se na ordem alfabtica. A lista seguinte apresenta estes operadores. Operador Igualdade (==) Desigualdade (!=) Maior do que (>) Maior ou igual (>=) Menor do que Descrio Verifica se os dois operandos so iguais Verifica se os operandos so desiguais Verifica se o operando da esquerda maior do que o da direita Verifica se o operando da esquerda maior ou igual ao da direita Verifica se o operando da esquerda Exemplo x==y d true se x igualar y x!=y d true se x no for igual a y x>y d true se x for maior do que y x>=y d true se x for maior ou igual a y x

16

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

faz aparecer uma janela com um aviso para o usurio. A notao por pontos significa que estamos chamando o mtodo alert() pertencente ao objeto window. Neste caso podamos ter escrito apenas alert(mensagem) e omitido a parte window (o browser j sabe que o mtodo alert pertence ao objeto window). O objeto document contm uma representao da pgina HTML. Cada um dos elementos que compem a pgina (formulrios, pargrafos, imagens, links, etc) podem ser lidos e manipulados utilizando este objeto. Depois de uma pgina estar carregada, o cdigo seguinte:alert("A segunda imagem document.images[1].src); desta pgina foi carregada a partir de: " +

mostra a origem (src) de uma imagem. Repare que com o objeto document temos de usar sempre a notao por pontos, no sendo aceitas abreviaes.

9. Definir uma FunoAs funes permitem-nos agrupar vrias linhas de cdigo que realizam um determinado trabalho, dar-lhe um nome e execut-las chamando-as por esse nome. O exemplo seguinte define uma funo:

17

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Nunca esquea que em JavaScript as letras maisculas no so equivalentes s letras minsculas, por isso tenha sempre muita ateno ao fato de que o nome que se usa para chamar uma funo tem de ser rigorosamente igual ao nome dando durante sua definio. No exemplo anterior usamos os caracteres { e } para delimitar um bloco de cdigo. Tudo o que est dentro destes delimitadores faz parte da funo e ser executado sempre que esta for invocada escrevendo dataAtual() no seu cdigo. Como resultado ser escrita na pgina a data e hora do momento em que a funo foi chamada. Tambm podemos passar argumentos para a funo, como mostra a seguir:

como teremos oportunidade de ver quando aprofundarmos o nosso estudo, as funes tm uma importncia fundamental na programao de scripts complexos.

10. As instrues condicionais if...elseUma instruo if permite-nos executar uma poro de cdigo apenas se for verdadeira uma determinada condio. Se essa condio no for verdadeira essa poro de cdigo no ser executada, podendo ser ou no executado outro cdigo alternativo, que ser especificado atravs da palavra else. A idia principal que est na base das instrues if/else pode ser resumida numa frase: "Se chegarmos antes da hora de almoo vamos dar um passeio, caso contrrio vamos para a mesa". O exemplo seguinte ilustra esta idia:

18

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Neste exemplo a hora de antes do almoo e ser apresentada uma janela que tem escrito Vamos passear. Se a hora fosse 12 ou mais seria mostrado o texto Vamos para a mesa. Uma instruo if no precisa de ter associada a si uma instruo else. Quando isso acontece se a condio no se verificar no ser executado qualquer cdigo alternativo.

11. Executar cdigo repetidamenteUm dos recursos mais poderosos no arsenal de qualquer linguagem de programao a capacidade para repetir a realizao de tarefas de uma forma simples. Para isso definem-se ciclos de repetio dentro dos quais se coloca o cdigo que se pretende executar repetidamente.

11.1 Ciclos forUm ciclo for consiste num conjunto de trs expresses contidas entre parntesis, separadas pelo caractere ; (ponto e vrgula) e pelo cdigo a executar em cada um dos ciclos. Normalmente esse cdigo estar contido entre chaves para formar um bloco, mas se consistir numa nica linha no preciso usar as chaves. A primeira das expresses do ciclo for declara a varivel a usar como ndice (funciona apenas como contador) e a inicia. A segunda expresso declara uma condio que deve ser testada sempre que se inicia um novo ciclo. Se essa condio der false como resultado o ciclo pra e o cdigo definido abaixo no voltar a ser executado. A terceira expresso serve para atualizar o valor do ndice no final de cada ciclo. Ilustremos isto com um exemplo simples:

Este pedao de cdigo comea por definir uma varivel (global) chamada soma atribuindo-lhe o valor zero. O ciclo for define uma varivel de ndice (var i = 0) e verifica se a condio i < 3 cumprida. Se o resultado da verificao for true ser executado o cdigo que se encontra entre as chaves mais abaixo, o qual adiciona i varivel soma e apresenta uma mensagem informando sobre o valor atual da varivel i. Depois executada a terceira instruo do ciclo (i++), a qual soma uma unidade ao valor do ndice i e d-se incio a um novo ciclo. Este comea testando de novo o respeito pela condio i < 3. Se o resultado for true volta a executar o cdigo que est entre as chaves com o valor atualizado de i. Isto se repete at que i < 3 d false, o que termina a execuo do ciclo for. O exemplo seguinte mais elaborado e executa um ciclo que percorre todos os elementos de um array de nomes e destaca aqueles que comeam com a letra H.

20

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Neste exemplo usamos o mtodo charAt() do objeto String para verificar se o caractere inicial do nome (aquele est na posio zero) igual letra H.

11.2 Ciclos whileO ciclo while muito parecido com o ciclo for. De fato tudo o que um faz pode ser feito com o outro, embora por questes de legibilidade (e de elegncia do cdigo) cada um deles possa ter reas de aplicao que para as quais mais indicado do que o outro. O ciclo while avalia uma condio e se ela der true executa o bloco de cdigo que vem imediatamente a seguir. Se der false salta para frente do bloco de cdigo que vem a seguir sem o executar. Este exemplo usa um ciclo while para produzir o mesmo efeito que o exemplo anterior feito com o ciclo for:

21

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

PARTE II: Programao em JavaScript1. Reviso de matrias importantesNa 1 Parte deste curso em "Introduo ao JavaScript" ns abordamos os aspectos bsicos desta linguagem de programao. Apesar disso, voltamos a chamar a ateno do leitor para algumas coisas que sendo simples podem causar problemas a quem est dando os primeiros passos. Questes bsicas Para comear certifique-se de que ir compreender bem os exerccios prticos que sero apresentados a seguir. Eles ilustram alguns aspectos importantes para o estudo que se segue. Os exerccios apresentados neste tutorial contm explicaes e devem ser estudados para compreender as matrias.

22

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Exemplos de AplicaoJavaScript na seo head

JavaScript no corpo do documento

Escrever texto na pgina com JavaScript

23

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C O mtodo document.write() permite escrever texto diretamente no corpo da pgina enquanto ela carrega.

Um arquivo externo com cdigo JavaScriptext.js document.write("Este script veio de um arquivo externo!!!") O script responsvel pela escrita do texto mais abaixo est guardado em um arquivo externo chamado "ext.js".

Comentrios no cdigo JavaScript

24

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Declarar uma varivel, atribuir-lhe um valor e apresent-la na pgina Neste exemplo declara-se uma varivel, atribui-se um valor e escreve esse valor na pgina. Uma vez atribudo um valor varivel podemos us-la vrias vezes para representar o valor que lhe foi atribudo.

25

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Terminar ou no as linhas com ponto e vrgula Na 1 Parte deste curso em "Introduo ao JavaScript", em todos os exemplos apresentados, terminamos cada uma das linhas de cdigo com o caractere ; (ponto e vrgula.) Essa prtica visa evitar alguns erros e facilita a sua deteco, por isso ela recomendada a todos aqueles so iniciantes no estudo do JavaScript. Porm, ao contrrio do que acontece nas linguagens Java e C++, em que o uso do ponto e vrgula obrigatrio, em JavaScript ele facultativo. A maioria dos programadores de JavaScript no gosta de ver as linhas terminadas com ponto e vrgula e por isso no o usam. Por isso, os exemplos e exerccios de aplicao que voc encontrar daqui pra frente no iro seguir a recomendao do uso do ; (ponto e vrgula), porm sempre que puder use tal recomendao. Lembre-se que voc ainda um iniciante em JavaScript.

Exemplos de AplicaoUsar ou no usar ponto e vrgula

26

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C// --> Estude o cdigo JavaScript deste exemplo e leia os comentrios que o acompanham.

Letra maiscula no equivalente letra minscula Uma outra coisa que devemos levar em conta que em JavaScript no podemos trocar letras maisculas por minsculas nem minsculas por maisculas. Esta regra aplica-se a nomes de instrues, nomes de variveis, nomes de funes, nomes de objetos e a tudo o que possa existir num script.

Exemplos de AplicaoDiferenas entre letra maiscula e letra minscula (nomes de variveis) Como pode ver as variveis a e A possuem valores diferentes. Nunca esquea que em JavaScript as maisculas e as minsculas no so equivalentes.

27

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Diferenas entre letra maiscula e letra minscula Como pode ver a linha que usa o mtodo Write do objeto document no foi executada. Isto aconteceu porque esse mtodo no existe. Em JavaScript Write() no equivalente a write().

28

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Cuidados para se ter com as variveis Quando os scripts que escrevemos so curtos, fcil desenvolver de modo a que cada parte do cdigo no perturbe o funcionamento das outras restantes. No entanto, medida que os conhecimentos avanam, o nmero de funes que criamos ir aumentar. Quando isso acontece precisamos ter algum cuidado ao declararmos as variveis porque podemos fazer com que uma funo acabe alterando dados globais, o que pode provocar erros. O primeiro exemplo da lista seguinte ilustra uma situao destas: Exemplos de Aplicao Variveis globais Se o valor que guardamos na varivel z no incio do script for necessrio mais tarde, estaremos perante um erro porque a funo trocarString() alterou o seu valor indevidamente. Se dentro de uma

29

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cfuno usarmos a palavra var ao declaramos variveis temos a certeza de que no alteramos os valores das variveis globais. isso que se faz na funo trocarStringLocal().

Variveis locais

30

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Ccatch(e) { s='indefinido'// }

a varivel z no existe

document.write("Depois de invocarmos a funo trocarString() temos z="+s) // --> Como pode ver a varivel z s existe dentro da funo em que foi declarada. Fora dessa funo ela nunca chega a existir. Isto acontece porque ela uma varivel local

Domnio de existncia de uma varivel Como pode ver a varivel i no existia antes de ser executado o ciclo for. Ela s passou a existir depois de ser declarada. O domnio de existncia de uma varivel comea no meio em que declarada e termina quando terminar o script (variveis globais) ou quando terminar a funo (variveis locais).

31

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Caracteres especiais Em JavaScript, as strings (variveis que contm texto) definem-se colocando texto entre aspas ou entre apstrofos (caractere '). Por isso dizemos que as aspas e os apstrofos so caracteres delimitadores de uma string: a string comea na primeira ocorrncia de um caractere delimitador e termina na segunda ocorrncia mas sempre na mesma linha. O exemplo seguinte ilustra este ponto:var s = "Isto uma string" var z = 'Isto outra string'

Imaginemos agora que queremos colocar os prprios caracteres delimitadores como parte do contedo da string. No podemos escrever o que se mostra a seguir porque est errado:var s = "O meu nome "Zezinho"" var z = 'O meu nome 'Luiso'' // isto est errado // isto est errado

Mas podemos escrevervar s = "O meu nome \"Zezinho\"" var z = 'O meu nome \'Luiso\''

Ao colocarmos o caractere \ (barra para trs) antes das aspas ou dos apstrofos estamos dizendo ao interpretador de JavaScript que aquela aspa ou apstrofo no um delimitador mas sim um caractere normal que deve fazer parte do contedo da string. Podemos obter o mesmo resultado do exemplo anterior escrevendo na forma seguinte (que bem mais legvel e deve ser preferida):var s = 'O meu nome "Zezinho"' var z = "O meu nome 'Luiso'"

H caracteres que s podem ser obtidos usando a barra para trs. O mais importante deles o caractere newline (nova linha), que provoca uma mudana de linha e no pode ser obtido de nenhuma outra forma. Sempre que quisermos forar uma mudana de linha numa string temos de escrever \n (caractere newline), assim:var s = 'O meu nome "Zezinho".\nTodos tm respeitinho por mim!'

32

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Tambm conveniente (mas no absolutamente necessrio) que ao escrevermos o caractere / num script o faamos na forma \/ (colocando uma barra para trs antes da barra para frente). Isto recomendvel porque os comentrios com uma s linha comeam com os caracteres //. Se usarmos a barra para trs temos a certeza de que o interpretador no ir confundir o caractere / com o incio de um comentrio.

Exemplos de AplicaoCaracteres especiais: delimitadores de strings

Caracteres especiais: newline

33

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Utilizar caracteres especiais do HTML em um script A linguagem HTML e XHTML trata alguns caracteres de forma especial. Entre eles temos: &, < e >. Estes caracteres so utilizados na linguagem JavaScript para formar operadores lgicos. Se os usarmos num script (o que inevitvel, porque eles so indispensveis) as nossas pginas j no sero capazes de passar num teste de validao de HTML ou de XHTML e at podem ser interpretadas incorretamente por alguns browsers. Colocar os scripts dentro de comentrios do HTML Para evitarmos que isso acontea devemos fazer o seguinte: sempre que dentro de um script colocarmos um dos caracteres &, < ou > devemos colocar todo o cdigo do script dentro de um comentrio do HTML. Isto serve para evitar que o browser tente interpretar o contedo do script como se fosse HTML, o que seria errado. Por outro lado, um validador de HTML ou de XHTML que v analisar a pgina fica sabendo que o script no deve ser validado porque est escrito numa linguagem diferente. O exemplo seguinte ilustra este ponto: Sempre que usarmos caracteres especiais do HTML dentro do cdigo JavaScript conveniente que coloquemos todo o contedo do script dentro de um comentrio do HTML. Deste modo evitamos possveis erros de interpretao por parte do browser e erros de validao inevitveis.

34

Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C

Exemplos de AplicaoFormatar texto com etiquetas HTML Como acabou de ver podemos usar etiquetas do HTML com o mtodo document.write para produzir contedo formatado mas preciso ter cuidado!!! Sempre que colocarmos etiquetas HTML dentro de um script conveniente colocar o contedo do script dentro de um comentrio do HTML. 35Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CChamar uma funo a partir de uma ligao de hipertexto Por diversas vezes, em um desenvolvimento, ser til ter ligaes de hipertexto que ao invs de transportarem imediatamente o usurio para outra pgina executem uma instruo ou uma funo escritas em JavaScript. A forma mais simples de conseguirmos isso consiste em escrever o nome da funo no atributo href do elemento precedido pela string javascript:, assim: Dizer Ol Quando encontra uma ligao cujo atributo href comea por javascript: o browser passa a interpretar o resto do valor do atributo href como um conjunto de instrues escritas em JavaScript e no carrega uma nova pgina. Este mtodo permite executar uma ou mais instrues que devem obrigatoriamente ser separadas por ponto e vrgula, como se mostra a seguir:36Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Clique aqui para executar trs instrues Esta forma de executar JavaScript a partir de uma ligao tem algumas aplicaes teis, mas existe uma outra forma mais poderosa que se baseia no evento onclick. Essa forma permite continuar a usar o atributo href da maneira habitual e executar JavaScript. Continuar na linha seguinte uma linha extensa O JavaScript no impe limites ao comprimento das linhas de cdigo. Elas podem se entender pelo comprimento que for necessrio. No entanto, quando escrevemos strings (variveis de texto) extensas, a utilizao de linhas muito longas dificulta muito a escrita e a legibilidade do cdigo. Nestes casos preciso limitar o comprimento das linhas de cdigo. Por isso o JavaScript permite-nos interromper a escrita de strings e continuar a escrever na linha seguinte, assim: 37Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CAo terminarmos uma linha com o caractere \ (barra para trs) estamos dizendo ao interpretador de JavaScript que a string continua na linha seguinte. Isto se aplica apenas a strings e no ao cdigo normal.2. Os operadores da linguagem JavaScriptOs operadores servem para realizar operaes com valores, dando como resultado novos valores.2.1 Operadores aritmticosOperador + * / % ++ -Descrio Adio Subtrao Multiplicao Diviso Resto da diviso Incrementar (aumentar uma unidade) Decrementar (diminuir uma unidade) Exemplo 2+2 5-2 4*5 15/5 5/2 5%2 10%8 10%2 x=5 x++ x=5 x-Resultado 4 3 20 3 2.5 1 2 0 x=6 x=42.2 Operadores de atribuio (formas abreviadas)Operador = += -= *= /= %= Exemplo x=y x+=y x-=y x*=y x/=y x%=y O Mesmo Que x=y x=x+y x=x-y x=x*y x=x/y x=x%y2.3 Operadores de comparaoOperador == != > Descrio igual a no igual a maior do que Exemplo 5==8 5!=8 5>8 Resultado false true false38Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C>= 39Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CIncrementar valores (aumentar uma unidade) Decrementar valores (diminuir uma unidade) 40Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Operaes aritmticas 41Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CAtribuio mais elaborada de valores a variveis Comparaes 42Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C 2) document.write("b = " + b + " document.write("
") b = (5 != 2) document.write("b = " + b + " document.write("
") b = (5 == 2) document.write("b = " + b + " document.write("
") b = (5 >= 2) document.write("b = " + b + " document.write("
") b = (5 >= 5) document.write("b = " + b + " document.write("
") b = (5 >= 5.1) document.write("b = " + b + " // --> (porque 5 > 2 uma afirmao verdadeira)") (porque 5 != 2 uma afirmao verdadeira)") (porque 5 == 2 uma afirmao falsa)") (porque 5 >= 2 uma afirmao verdadeira)") (porque 5 >= 5 uma afirmao verdadeira)") (porque 5 >= 5.1 uma afirmao falsa)")Operaes lgicas 2) var v = (2 > 5) document.write("b = " + b + " document.write("
") document.write("v = " + v + " document.write("
") document.write("!b = " + !b + document.write("
") document.write("!v = " + !v + document.write("
") var c = b && v document.write("c = " + c + " document.write("
") c = b || v document.write("c = " + c + " document.write("
") b = (3 < 10 && 2 > 1) || !c(porque 5 > 2 uma afirmao verdadeira)") (porque 2 > 5 uma afirmao falsa)") " (porque a negao de true false)") " (porque a negao de false true)")(porque a operao: true && false d false)") (porque a operao: true || false d true)")43Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cdocument.write("b = " + b + " (porque a operao anterior d true)") // --> 2.5 Adio de textoO JavaScript permite produzir facilmente uma nova varivel de texto (String) cujo valor igual justaposio dos valores de outras variveis. Isso se consegue usando o operador + (adio), assim:txt1="Ai minha mezinha... " txt2="Isto vai ser um massacre!" txt3=" Estamos fritos!" txt4=txt1+txt2+txt3O resultado igual a:txt4="Ai minha mezinha... Isto vai ser um massacre! Estamos fritos!"Se adicionar uma varivel de texto a um valor que no seja texto, o sistema JavaScript faz a adio na mesma. Para isso ele converte para forma textual o valor que no texto e faz a adio. O resultado uma string (texto.) Nos exerccios listados mais abaixo pode ver melhor a forma como isso feito.Exemplos de AplicaoSomar texto com texto 44Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CSomar texto com outros valores 3. Instrues condicionaisAs instrues condicionais testam uma condio e com base no resultado do teste decidem se uma parte do cdigo deve ou no ser executada. Elas nos permitem executar cdigo diferente em situaes diferentes.3.1 As instrues if e if ... elseA instruo if 45Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CA instruo if se usa para testar uma condio e executar um bloco de cdigo apenas quando ela satisfeita. A sua sintaxe a seguinte:if (condio) { cdigo a executar se a condio for verdadeira }A seguir temos exemplos com esta instruo:var i = 10 var s if (i < 10) s = "O nmero i menor do que 10" // o cdigo a ser executado s ocupa uma linha no sendo // preciso coloc-lo entre chaves if (i >= 10) { s = "O nmero i maior ou igual a 10" i = 0 } // o cdigo a ser executado s ocupa uma linha no sendo // preciso coloc-lo entre chavesA instruo if ... else A instruo if ... else usa-se para testar uma condio. Se a condio for satisfeita ser executado um bloco de cdigo e se no for satisfeita ser executado um outro bloco alternativo. A sua sintaxe a seguinte:if (condio) { cdigo a executar se a condio for verdadeira } else { cdigo a executar se a condio for falsa }A seguir temos um exemplo com esta instruo: 46Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CExemplos de AplicaoA instruo if Este exemplo demonstra a instruo if. Se a hora marcada pelo relgio do seu computador for inferior a 12 ser escrita uma saudao de bom dia. Instruo if...else 47Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C 18) document.write("Boa noite") else document.write("Boa tarde") } // --> Este exemplo demonstra as instrues if ... else. Se a hora marcada pelo relgio do seu computador for inferior a 12 ser escrita uma saudao de bom dia, se for superior a 18 a saudao ser de boa noite e nos restantes casos ser de boa tarde. Produzir uma ligao aleatria 0.666) document.write('W3C') else { if(r 48Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Este script produz trs ligaes de hipertexto aleatoriamente. Atualize vrias vezes a pgina para visualizar as modificaes. 3.2 Atribuio condicional de valoresA linguagem JavaScript possui um operador que nos permite escolher o valor a atribuir a uma varivel consoante o resultado do teste que feito a uma condio. Esse operador um operador condicional de atribuio de valor e composto por diversas partes: uma condio, um ponto de interrogao e dois valores que podem ser atribudos varivel separados pelo caractere : (dois pontos). Ele tem a vantagem de permitir escrever cdigo compacto que mais fcil de ler pelos programadores experientes. A sua sintaxe a seguinte:varivel = (condio) ? valor1 : valor2Este operador atua do seguinte modo: se a condio for verdadeira a varivel passar a ter o valor1; se a condio no for satisfeita ser atribudo o valor2 varivel.Exemplos de AplicaoAtribuio condicional de valores 49Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CAtribuio condicional de valores (verso 2) 100) ? "excessiva" : "legal" document.write("A sua velocidade na rodovia " + s) // --> O operador condicional de atribuio de valor tambm pode ser usado dentro de expresses normais. 3.3 A instruo switchNota: Apesar de esta instruo no fazer parte do padro ECMAScript, ela suportada por todos os browsers importantes. A instruo switch usa-se para comparar o valor do seu argumento (uma varivel ou uma expresso) com vrios valores. Para cada caso em que houver uma igualdade ser executada uma determinada poro de cdigo. A sintaxe desta instruo a seguinte:switch (expresso)50Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C{ case label1: cdigo a executar se expresso = label1 break case label2: cdigo a executar se expresso = label2 break default: cdigo a executar se a expresso no for igual a nenhuma das alternativas apresentadas antes }Esta instruo funciona do seguinte modo: Primeiro calcula-se o valor da expresso que argumento da instruo switch. A seguir compara-se o resultado da expresso com um conjunto de alternativas que so fornecidas a seguir palavra "case" e terminadas pelo smbolo : (dois pontos). Sempre que a comparao detectar uma igualdade ser executada a poro de cdigo que est associada a esse caso. A execuo do cdigo prossegue pelas linhas seguintes at ser encontrada a instruo break ou at que termine o bloco switch. O exemplo seguinte mostra como se usa esta instruo. 51Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CUma vez detectado um acerto, inicia-se a execuo da poro de cdigo que lhe corresponde. Se no fim dessa poro no colocarmos uma instruo break, todas as instrues do bloco switch que esto mais abaixo sero executadas at que o bloco switch termine ou at que seja encontrada uma instruo break. Este comportamento pode ser explorado para escrever cdigo mais compacto. O exemplo seguinte mostra como isso se faz: 52Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CComo pode ver, para acrescentarmos um elemento ao conjunto de nomes basta acrescentar uma linha com a palavra "case".Exemplos de AplicaoA instruo switch Este exemplo escreve uma frase em funo do dia da semana. Repare que Domingo=0, Segunda-feira=1, Tera-feira=2, ... A instruo switch (verso 2) 53Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C// pertence ao conjunto {6, 12, 66}, ao conjunto {16, 22, 76}, se // igual a 37, ou se no verifica nenhuma destas condies var i = 37 var s = "O nmero " + i switch(i) { case 6: case 12: case 66: s += " pertence ao conjunto {6, 12, 66}" break case 16: case 22: case 76: s += " pertence ao conjunto {16, 22, 76}" break case 37: s +=" igual a 37" break default: s += " no verifica nenhuma das condies" } document.write(s) // --> 4. Execuo repetida de cdigoMuitas vezes ao escrevermos cdigo em JavaScript precisamos que um bloco de cdigo ou uma instruo sejam executados repetidamente. Os ciclos de repetio nos fornecem meios para conseguirmos isso. Em JavaScript temos ao nosso dispor as seguintes instrues para produzir ciclos de repetio: for - executam um bloco de cdigo enquanto uma condio for satisfeita. while - repetem a execuo de um bloco de cdigo enquanto uma condio for satisfeita. do...while - repetem a execuo de um bloco de cdigo enquanto uma condio for satisfeita mas executam-no pelo menos uma vez, mesmo que a condio nunca seja satisfeita.4.1 Ciclos for54Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3COs ciclos for so implementados atravs da instruo for. Esta uma instruo complexa que aceita vrios argumentos separados pelo caractere ; (ponto e vrgula). A sua sintaxe a seguinte:for (inicializao; condio; atualizao) { bloco de cdigo a executar }O primeiro argumento (inicializao) composto por uma ou mais instrues (separadas por vrgulas). Essas instrues so executadas antes de se iniciar o ciclo. O segundo argumento (condio) composto por uma ou mais condies (separadas por vrgulas) que so testadas antes de se executar o bloco de cdigo associado ao ciclo. Se uma dessas condies no for verdadeira o ciclo termina. O terceiro argumento (atualizao) composto por uma ou mais instrues (separadas por vrgulas) que so executadas sempre que se completa uma execuo do bloco de cdigo associado ao ciclo. Normalmente essas instrues usam-se para incrementar uma varivel que funciona como contador, mas podem ser usadas para outros fins. O uso mais comum que dado aos ciclos for a execuo de um bloco de cdigo um nmero determinado de vezes. precisamente isso que se ilustra a seguir: Neste exemplo a inicializao var i = 1, a condio i Explicao 1) O ciclo for comea dando varivel i o valor 0. 2) O bloco de cdigo que est entre chaves ({ ... }) logo a seguir instruo for executado uma vez. 3) Depois de terminada a execuo do bloco de cdigo executada a terceira instruo do ciclo for, que i++. Esta terceira instruo aumenta em uma unidade o valor da varivel i. 4) A seguir executa-se a segunda instruo do ciclo, que i 4.2 Ciclos while e ciclos do...whileA instruo while repete a execuo de um bloco de cdigo enquanto uma condio for satisfeita. A sua sintaxe a seguinte:while (condio) { cdigo a executar }A instruo do...while repete a execuo de um bloco de cdigo enquanto uma condio for satisfeita mas executa-o pelo menos uma vez, mesmo que a condio nunca seja satisfeita. A sua sintaxe a seguinte:do { cdigo a executar } while (condio)Exemplos de AplicaoCiclos (de repetio) while Explicao 1) O ciclo while verifica a condio i Explicao 58Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C1) O bloco de cdigo que est entre chaves ({ ... }) logo a seguir instruo do sempre executado sem que seja necessrio verificar qualquer condio. 2) Verifica-se a condio que est dentro da instruo while, que neste caso i Repare que no primeiro bloco try...catch surgiu um erro porque a[3] no est definido. Por isso o interpretador de JavaScript executou o cdigo de recuperao do bloco catch. J no segundo bloco try...catch a parte try no produz nenhum erro, deste modo, a parte catch no chega a ser executada. 60Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CAs instrues try ... catch (verso 2) Repare que a segunda tentativa gerou um erro porque a varivel s2 no existe. As instrues try...catch permitiram remediar o problema e continuar a executar o script. Dentro do bloco associado instruo catch devemos colocar o cdigo para ultrapassar o erro, se isso for possvel. 61Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CAs instrues try ... catch (verso 3) Algumas vezes no preciso fornecer cdigo de recuperao, basta ignorar os erros e no executar as tarefas que geraram esses erros. Para conseguirmos isso basta deixar os blocos catch vazios. 62Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C6. Construir e usar uma funoDesignamos por funo um bloco de cdigo a que damos um nome para que possa ser chamado vrias vezes em locais diferentes. Para fazermos com que esse cdigo seja executado ns invocamos chamando-o pelo seu nome (nome da funo). Vejamos um exemplo de uma funo simples que no faz nada:function fazerNada() { }No exemplo seguinte a funo no executa qualquer operao, mas devolve um valor de texto constante:function fazerNada_2() { return "Eu no fao nada!" }Sempre que uma funo precisa devolver o resultado do seu trabalho deve usar a instruo "return". Esta instruo especifica o valor que devolvido, o qual ser inserido no local em que a funo foi chamada.function fazerNada_2() { return "Eu no fao nada!" }Para usarmos esta funo basta escrevermos:var s = fazerNada_2()e a varivel s passar a guardar o valor "Eu no fao nada!"Exemplos de AplicaoUma funo que no recebe argumentos O valor devolvido pela funo fazerNada_2() : 63Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C6.1 Funes com um nmero fixo de argumentosA seguir temos uma funo que recebe um nmero como argumento, soma duas unidades a esse nmero e devolve o valor da soma:function somar(n) { var soma = n + 2 return soma }Para usarmos esta funo basta que escrevamos:var r = somar(5)e a varivel r passar a ter o valor 7. Se precisarmos usar mais argumentos basta especific-los ao declarar a funo:function multiplicar(p, q) { var m = p*q return m }Para usarmos esta funo basta que escrevamos:var produto = multiplicar(5, 4)e a varivel produto passar a ter o valor 20, que igual a 5 vezes 4. A linguagem JavaScript nos permite utilizar tantos argumentos quanto precisarmos.Exemplos de AplicaoUma funo que aceita um argumento 64Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C} // --> O valor devolvido pela funo : Uma funo que aceita dois argumentos O valor devolvido pela funo : 65Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CUma funo que aceita quatro argumentos O valor devolvido pela funo : 6.2 Funes que aceitam um nmero varivel de argumentosH casos em que o nmero de argumentos que so passados a uma funo pode variar. Numa situao dessas pode ser preciso atribuir valores por omisso aos argumentos que possam estar em falta. Para fazermos isso precisamos fazer uma distino entre duas situaes diferentes: 1) Todos os argumentos so declarados ao definir a funo; 2) Nenhum argumento declarado ao definir a funo. Todos os argumentos so declarados ao definir a funo66Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CEsta situao ocorre quando os argumentos tm naturezas diferentes. Alguns argumentos so obrigatrios mas outros so opcionais. Quando um argumento opcional no fornecido a funo deve dar-lhe um valor por omisso.Exemplos de AplicaoUma funo em que o segundo argumento opcional Os valores devolvidos pela funo so:

Uma funo que aceita dois argumentos67Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C O valor devolvido pela funo : Uma funo que aceita quatro argumentos O valor devolvido pela funo : 68Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CNo so declarados argumentos ao definir a funo Esta situao ocorre normalmente quando os argumentos so todos do mesmo tipo (so todos nmeros ou so todos strings).Exemplos de AplicaoUma funo que devolve a soma dos seus argumentos (nmeros) Os valores devolvidos pela funo so:

69Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CUma funo que devolve o valor mdio dos seus argumentos Os valores devolvidos pela funo so:

Uma funo que devolve a soma dos seus argumentos (strings) 70Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Os valores devolvidos pela funo so:

7. Trabalhar com objetosA linguagem JavaScript uma linguagem orientada a objetos. Isto significa que em JavaScript tudo so objetos. No entanto, o estilo de programao adaptado em JavaScript torna esse fato menos evidente do que em outras linguagens, particularmente as linguagens compiladas como o Java, o C++ ou o C#. Para programar corretamente em JavaScript o programador no precisa dominar o modelo de programao orientada para objetos, bastando saber usar os objetos que so oferecidos pela linguagem e pelo web browser que corre o programa. Na prtica, o programador de JavaScript segue quase sempre o modelo de programao orientada para procedimentos (programao estruturada), que menos exigente, e recorre sempre que necessrio aos objetos pr-definidos que o browser coloca ao seu dispor. Esta estratgia funciona bem desde que as aplicaes que se escreve se limitem ao controle e manipulao de pginas da Web. O JavaScript no serve para criar aplicaes de classe empresarial como aquelas que se escrevem em Java, C++ ou C#.71Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CEsta forma de programar, aliada no necessidade de declarar os tipos das variveis e ao fato de no ser preciso compilar os programas, faz com que seja possvel produzir e testar cdigo JavaScript com grande rapidez e com muito menos esforo do que aquele que exigido por outras linguagens. A natureza das tarefas que so executadas em JavaScript faz com que s em situaes excepcionais surja a necessidade de definir novos objetos.7.1 Criar um novo objetoO web browser cria automaticamente muitos dos objetos que coloca a dispor do programador de JavaScript. Esses objetos esto prontos para ser usados sem que o programador tenha de cri-los. Para poder trabalhar com os objetos que no so criados pelo browser o programador obrigado a cri-los antes de os usar. Um bom exemplo o objeto Array, que pode ser criado de diversas formas:// um Array com espao reservado para 3 elementos // e cujo contedo ser definido mais tarde var a = new Array(3) // um Array com trs elementos var b = new Array("Papagaio", "Ave do paraso", "Canrio") // um Array cujas propriedades e contedo sero definidos mais tarde var c = new Array()Depois de criarmos um objeto podemos utilizar as propriedades e os mtodos que ele coloca nossa disposio.7.2 Propriedades dos objetosAs propriedades de um objeto so variveis que pertencem a esse objeto. Ns podemos ler os valores dessas variveis (propriedades) e alterar os valores daquelas que aceitem ser escritas (algumas s podem ser lidas.) O objeto Array, que j vimos antes, oferece uma nica propriedade, que a propriedade length. O valor dessa propriedade igual ao nmero de elementos que esto guardados no Array. Para acessarmos uma propriedade de um objeto escrevemos o nome da varivel que representa o objeto, um ponto e o nome da propriedade. O exemplo seguinte mostra como se acessa a propriedade length do objeto Array:var a = new Array("Papagaio", "Ave do paraso", "Canrio") // Para acessarmos a propriedade escrevemos o nome da varivel que // representa o objeto (que a), um ponto e o nome da propriedade. var l = a.length // l passou a valer 3 (nmero de elementos do Array)7.3 Mtodos de objetosOs mtodos de um objeto so funes que pertencem a esse objeto. Repare que enquanto que as propriedades correspondem a variveis, os mtodos correspondem a funes. Os mtodos realizam transformaes no objeto a que pertencem e devolvem o resultado da sua atuao. O mtodo reverse() devolve um novo Array com os mesmos elemento dos Array a que pertence mas com a ordem invertida:72Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cvar a = new Array("Papagaio", "Ave do paraso", "Canrio") // Para acessarmos o mtodo escrevemos o nome da varivel que // representa o objeto (o seu nome a), um ponto e o nome do mtodo. // b ser igual a ("Canrio", "Ave do paraso", "Papagaio") var b = a.reverse()Mtodos estticos Alguns objetos oferecem mtodos estticos. Esses mtodos diferem dos mtodos normais pelo fato de no pertencerem a um objeto criado com a instruo new. Os mtodos estticos esto sempre disponveis para serem usados, no preciso criar um objeto para us-los. Um exemplo de um mtodo esttico o mtodo String.fromCharCode(). Por ser um mtodo esttico do objeto String ele deve ser sempre invocado na forma String.fromCharCode () e antes de .fromCharCode () nunca se deve colocar o nome de uma varivel. Quando utilizado deve comear sempre por String.7.4 Objetos definidos pelo padro ECMAScriptO padro ECMAScript define as regras da linguagem, as instrues que a compem e um conjunto reduzido de objetos. Este padro serve de base a diversas linguagens de script. Entre elas temos: o JavaScript criado pela Netscape, o JScript da Microsoft e a verso 2 da linguagem ActionScript da Macromedia (implementada nas verses do Flash Player). Apesar de todas estas linguagens se basearem no padro ECMAScript, elas no so iguais porque ao padro acrescentaram os seus prprios objetos. Isto necessrio porque o padro ECMAScript constitui apenas o ncleo dessas linguagens. Ele no define objetos que so especficos de cada uma das reas em que vai ser aplicado. Essa uma tarefa que fica ao cuidado dos criadores das implementaes de ECMAScript. Podemos dizer que o padro ECMAScript oferece uma infra-estrutura slida sobre a qual se constroem linguagens de script destinadas a diversos fins: JavaScript para o HTML dinmico, ActionScript para controlar aplicaes baseadas no Flash Player da Macromedia, ou outras que podem servir para outros fins. Os objetos definidos pelo padro ECMAScript so apenas aqueles que so necessrios para criar uma linguagem robusta e funcional. Nos captulos seguintes deste curso vamos estudar esses objetos, que so: Array, Date, Math e String. Estes objetos oferecem funcionalidades de importncia fundamental e por isso esto presentes em todas as linguagens compatveis com o padro ECMAScript.7.5 As declaraes this e withA declarao this A declarao this representa o prprio objeto em que usada. Esse objeto pode ser uma funo, uma ligao de hipertexto, uma imagem, etc. Esta declarao bastante til em HTML Dinmico porque nos ajuda muito a construir funes que respondem a eventos sabendo sempre qual foi o objeto que originou o evento e funcionam corretamente em todos os browsers. A declarao with73Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CEsta declarao estabelece o objeto ao qual se aplica uma srie de instrues. Os dois exemplos seguintes usam o objeto Math para ilustrar o uso desta declarao e so totalmente equivalentes (se ainda no conhece o objeto Math estude-o mais frente). Verso 1:x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10) y = Math.tan(14 * Math.E)Verso 2, equivalente anterior. Repare que no foi preciso colocar a parte Math antes dos nomes dos mtodos cos(), sin() ou tan().with (Math) { x = cos(3 * PI) + sin (LN10) y = tan(14 * E) }Quando o nmero de instrues pequeno no vale a pena usar a declarao with, mas se esse nmero crescer muito o cdigo ser mais compacto e fcil de ler se usarmos esta declarao.Exemplos de AplicaoAs funes como objetos: como se usa a declarao this 74Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Nota: Em JavaScript tudo so objetos, funes e variveis includas Clique nos botes de baixo para executar as funes:
A declarao with 75Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C8. Objeto ArrayO objeto Array serve para definir um tipo de varivel que capaz de guardar sob o mesmo nome uma quantidade de valores numricos, de texto ou de objetos. Este objeto pode ser considerado como uma lista, ou cadeia de itens, em que cada item uma varivel ou um objeto. O acesso a cada um dos itens da lista faz-se recorrendo ao seu ndice, que o nmero de ordem do item na lista. Criao de um novo Array// um Array cujo tamanho e contedo sero definidos mais tarde var c = new Array() // um Array com espao reservado para N elementos // e cujo contedo ser definido mais tarde var a = new Array(N) // um Array com N+1 elementos definidos logo de incio var b = new Array(elemento_0, elemento_1, ..., elemento_N)8.1 Propriedades do objeto Array Propriedade length Descrio Fornece o nmero de elementos que esto no Array. O valor desta propriedade estabelecido quando o Array criado, mas pode crescer se formos juntando mais elementos ao Array.8.2 Mtodos do objeto ArrayMtodo join() reverse() Descrio Devolve uma String (varivel de texto) que representa o contedo do Array Devolve um novo Array em que a ordem dos elementos est invertida (em particular temos que o elemento que tinha o ndice zero passa a ter o ndice mais alto e vice versa) Devolve um novo Array em que os elementos esto ordenados (geralmente por ordem crescente)sort()8.3 Colees76Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CO termo coleo usa-se normalmente para designar um Array cujos itens so objetos todos do mesmo tipo. O conceito de coleo muito usado em HTML Dinmico para designar grupos de objetos do mesmo tipo. Um exemplo disto a coleo images, que um Array cujos itens so os objetos que representam as imagens que esto no documento (cada imagem corresponde um objeto Image.)Exemplos de AplicaoConstruir um Array para guardar nomes Ordenar os elementos de um Array (strings) 77Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Ordem normal Ordem alfabtica Ordenar os elementos de um Array (nmeros) A ordenao que o mtodo sort() faz sempre por ordem alfabtica. Para ordenarmos nmeros por ordem crescente temos de usar outras tcnicas. Ordem normal Ordem alfabtica 78Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Inverter a ordem dos elementos de um Array Ordem alfabtica Ordem inversa 79Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cdocument.write(fruta[i] + "
") // --> A coleo Images Aqui temos algumas imagens: A coleo images deste documento um Array que contm um objeto Image para cada imagem. Eis algumas das propriedades destes objetos:

80Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C9. Objeto DateO objeto Date permite-nos ler, construir e realizar operaes com datas e horas. Datas numricas e datas de texto Em JavaScript ns podemos definir um conjunto data/hora por extenso ou atravs de um valor numrico. A definio por extenso pode ser feita de vrias formas, como ilustra a seguir:Fri, 21 Tue Nov Tue, 25 Tue Nov Nov 2003 10:43:34 UTC 25 14:45:42 UTC 2003 Nov 2003 14:48:21 GMT 25 2003 14:46:37 GMT+0000A outra forma que podemos usar para definir um conjunto data/hora usa como ponto de referncia as zero horas do dia 1 de Janeiro de 1970. Para definirmos uma data e uma hora usando esta forma ns indicamos o nmero de milisegundos que decorreram entre as zero horas de 1 de Janeiro de 1970 e a data que queremos definir. Se usarmos um valor negativo estaremos indicando uma data anterior ao ponto de referncia. A seguir temos exemplos desta forma de definir datas:// 1069772056710 // 2237468559000 equivale a equivale a Tue, 25 Nov 2003 14:54:16 UTC Sun Nov 25 2040 15:02:39 GMT+0000 81Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cvar DATA2=new Date("Sun Nov 25 2040 15:02:39 GMT+0000") document.write("DATA1 = "+DATA1.toLocaleString()) document.write("
") document.write("DATA2 = "+DATA2.toLocaleString()) --> Criao de um novo objeto Date// Cria um objeto com a data e a hora atuais oData1 = new Date() // Cria objeto com a data e hora indicadas por valorData (texto ou numrica) oData2 = new Date(valorData) // Cria um objeto com a data indicada. obrigatrio indicar o ano, o ms e o // dia. As horas, os minutos, os segundos e os milisegundos so facultativos. oData3 = new Date(ano, ms, dia[, horas[, minutos[,segundos[,milisegundos]]]])9.1 Mtodos do objeto DateMtodo getDate() getDay() getMonth() getFullYear() getYear() getHours() getMinutes() getSeconds() getMilliseconds() getTime() Descrio Devolve o dia do ms (de 1 a 31) que est guardado no objeto Date Devolve o dia da semana (de 0=Domingo at 6=Sbado) guardado no objeto Date Devolve o ms (de 0=Janeiro at 11=Dezembro) guardado no objeto Date Devolve o valor completo do ano (quatro dgitos) guardado no objeto Date Devolve o valor incompleto do ano (apenas dois dgitos) guardado no objeto Date. No use este mtodo, use getFullYear em seu lugar. Devolve o valor da hora (de 0 a 23) guardada no objeto Date Devolve o valor dos minutos (de 0 a 59) guardados no objeto Date Devolve o valor dos segundos (de 0 a 59) guardados no objeto Date Devolve o valor dos milisegundos (de 0 a 999) guardados no objeto Date Devolve a quantidade de milisegundos decorridos desde as zero horas do dia 1 de Janeiro de 197082Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CgetTimezoneOffset()getUTCDate() getUTCDay() getUTCMonth() getUTCFullYear() getUTCHours() getUTCMinutes() getUTCSeconds() getUTCMilliseconds() setDate(dia_ms) setFullYear(ano) setHours(horas) setMilliseconds(milisegundos) setMinutes(minutos) setMonth(ms) setSeconds(segundos) setTime(data_numrica)setYear(ano) setUTCDate(dia_ms) setUTCDay(dia_semana)at data que est guardada no objeto Date Devolve a diferena de tempo entre o fuso horrio do computador que est a ser usado e o Tempo Mdio de Greenwich ("Greenwich Mean Time", ou GMT) Devolve o dia do ms (de 1 a 31) guardado no objeto Date medido no padro de tempo universal (UTC) Devolve o dia da semana (de 0 a 6) guardado no objeto Date medido no padro de tempo universal (UTC) Devolve o valor do ms (de 0 a 11) guardado no objeto Date medido no padro de tempo universal (UTC) Devolve o valor completo do ano (com quatro dgitos) guardado no objeto Date medido no padro de tempo universal (UTC) Devolve a hora (de 0 a 23) guardada no objeto Date medida no padro de tempo universal (UTC) Devolve o valor dos minutos (de 0 a 59) guardados no objeto Date medidos no padro de tempo universal (UTC) Devolve o valor dos segundos (de 0 a 59) guardados no objeto Date medidos no padro de tempo universal (UTC) Devolve o valor dos milisegundos (de 0 a 999) guardados no objeto Date medidos no padro de tempo universal (UTC) Acerta o valor do dia (de 1 a 31) do ms guardado no objeto Date Acerta o valor do ano (com quatro dgitos) guardado no objeto Date Acerta o valor da hora (de 0 a 23) guardada no objeto Date Acerta o valor dos milisegundos (de 0 a 999) guardados no objeto Date Acerta o valor dos minutos (de 0 a 59) guardados no objeto Date Acerta o valor do ms (de 0=Janeiro a 11=Dezembro) guardado no objeto Date Acerta o valor dos segundos (de 0 a 59) guardados no objeto Date Acerta a data e a hora guardadas no objeto Date para o valor correspondente s zero horas do dia 1 de Janeiro de 1970 mais o nmero de milisegundos que fornecido como argumento do mtodo Acerta o valor do ano guardado no objeto Date. No use este mtodo, use antes o mtodo setFullYear. Acerta o valor do dia (de 1 a 31) do ms guardado no objeto Date usando o padro de tempo universal (UTC) Acerta o valor do dia da semana (de 0=Domingo a 6=Sbado) guardado no objeto Date usando o 83Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3Cpadro de tempo universal (UTC) Acerta o valor do ms (de 0=Janeiro a 11=Dezembro) guardado no objeto Date usando o padro de tempo universal (UTC) setUTCFullYear(ano) Acerta o valor do ano (com quatro dgitos) guardado no objeto Date setUTCHour(horas) Acerta o valor da hora (de 0 a 23) guardada no objeto Date usando o padro de tempo universal (UTC) setUTCMinutes(minutos) Acerta o valor dos minutos (de 0 a 59) guardados no objeto Date usando o padro de tempo universal (UTC) setUTCSeconds(segundos) Acerta o valor dos segundos (de 0 a 59) guardados no objeto Date usando o padro de tempo universal (UTC) setUTCMilliseconds(milisegundos) Acerta o valor dos milisegundos (de 0 a 999) guardados no objeto Date usando o padro de tempo universal (UTC) toGMTString() Devolve uma representao textual (a data e a hora escritas por extenso) usando como referncia o fuso horrio do Tempo Mdio de Greenwich (GMT) toLocaleString() Devolve uma representao textual (a data e a hora escritas por extenso) no fuso horrio do computador local. toUTCString() Fornece uma representao textual (a data e a hora escritas por extenso) da data contida no objeto Date medida no padro UTC. setUTCMonth(ms)9.2 Mtodos estticos do objeto DateMtodo Date.parse(data_texto) Date.UTC(ano, ms, dia, horas, minutos, segundos, milisegundos) Descrio Devolve o nmero de milisegundos decorridos entre as zero horas do dia 1 de Janeiro de 1970 e a data indicada por data_texto (formato de texto) Devolve o nmero de milisegundos que separam a data fornecida como argumento das 0 horas do dia 1 de Janeiro de 1970. obrigatrio indicar o ano, o ms e o dia. As horas, os minutos, os segundos e os milisegundos so facultativos.Nota: quando usar os mtodos estticos lembre-se que por serem estticos eles se escrevem sempre na forma Date.parse() e Date.UTC(). No tente colocar nomes de variveis antes deles.Exemplos de AplicaoMostrar o dia da semana 84Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C Obter a hora marcada pelo relgio do seu computador 85Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CObter o dia e o ms em que estamos Criar uma data com um valor pr-definido 86Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CEstabelecer o ano para uma data O padro de tempo universal (UTC) 87Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3CEscrever a data completa com os nomes do dia e do ms Os mtodos estticos 88Curso de Programao em JavaScript e HTML DinmicoDesenvolvimento, aplicaes e referncias de acordo com as normas do W3C 10. Objeto MathO objeto Math um objeto intrnseco do sistema JavaScript. Ele no deve ser criado explicitamente pelo programador porque o prprio sistema que o cria automaticamente ao arrancar.10.1 Propriedades do obj