Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação Javascript (parte 2) Objetos e eventos Orientação a objetos Métodos Propriedades Eventos Array Objeto Array definido através da palavra-chave new var diasSemana = new Array(); var diasSemana = new Array(7); var diasSemana = newArray(); diasSemana[0] = “Domingo”; diasSemana[1] = “Segunda”; diasSemana[2] = “Terca”; diasSemana[2] = “Quarta”; diasSemana[3] = “Quinta”; diasSemana[4] = “Sexta”; diasSemana[5] = “Sabado”; var diasDaSemana = new Array("Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"); Array Métodos join() Coloca todos os elementos de um Array em uma string e os separam por um delimitador especificado. shift() Retorna o primeiro valor de um Array e remove os demais. Unshift() Acresce um ou mais elementos ao inicio de um Array e retorna o novo tamanho pop() Retorna o último elemento de um Array e remove os demais. push() Acresce um ou mais elementos ao final de um Array reverse() Inverte a ordem dos elementos de um Array. slice() Retorna os elementos selecionados de um Array. sort() Ordena os elementos de um Array. concat() Concatenar duas ou mais arrays Array var diasDaSemana = new Array(); diasDaSemana[0] = "Domingo"; diasDaSemana[1] = "Segunda"; diasDaSemana[2] = "Terça"; diasDaSemana[3] = "Quarta"; diasDaSemana[4] = "Quinta"; diasDaSemana[5] = "Sexta"; diasDaSemana[6] = "Sábado"; alert("Utilizando o método join().\n\n" + diasDaSemana.join(" - | - ") + "\n\nElementos separados por um delimitador: - | ."); alert("Utilizando o método shift().\n\n" + diasDaSemana.shift() + "\n\nApenas o primeiro elemento (valor): Domingo."); alert("Utilizando o método pop().\n\n" + diasDaSemana.pop() + "\n\nApenas o último elemento (valor): Sábado."); Array Exemplo concat() <script type="text/javascript"> var arr = new Array(3); arr[0] = "Jani"; arr[1] = "Tove"; arr[2] = "Hege"; var arr2 = new Array(3); arr2[0] = "John"; arr2[1] = "Andy"; arr2[2] = "Wendy"; document.write(arr.concat(arr2)); </script> Array Exemplo push() <script type="text/javascript"> var arr = new Array(3); arr[0] = "Jani"; arr[1] = "Hege"; arr[2] = "Stale"; document.write(arr + "<br />"); document.write(arr.push("Kai Jim") + "<br />"); document.write(arr); </script> Imprime: Jani,Hege,Stale 4 Jani,Hege,Stale,Kai Jim Array Exemplo unshift() <script type="text/javascript"> var arr = new Array(3); arr[0] = "Jani"; arr[1] = "Hege"; arr[2] = "Stale"; document.write(arr + "<br />"); document.write(arr.unshift("Kai Jim") + "<br />"); document.write(arr); </script> Imprime: Jani,Hege,Stale 4 Kai Jim,Jani,Hege,Stale Date Objeto Date dataAtual = new Date(); alert(dataAtual) Mon Jun 26 2008 15:29:13 GMT-0300 (Hora oficial do Brasil) Exemplo para mostrar data no formato dd/mm/aaaa var data = new Date(); var mes = new Array(12) mes[0] = "Janeiro"; mes[1] = "Fevereiro"; mes[2] = "Março"; mes[3] = "Abril"; mes[4] = "..."; alert(data.getDate() + "/" + mes[data.getMonth()] + "/" + data.getFullYear()); Date Métodos Date()Retorna a data e o horário atual. getDate()Retorna o dia do mês (1-31). getDay()Retorna o dia da semana (0-6). // Uma forma new Date().nomeDoMetodo(); // Outra forma var data = new Date(); data.nomeDoMetodo(); getMonth()Retorna o mês (0-11) getFullYear()Retorna o ano com quatro dígitos. getHours()Retorna a hora (0-23). getMinutes()Retorna os minutos (0-59). getSeconds()Retorna os segundos (0-59). getMilliseconds()Retorna os milisegundos (0-999). getTimezoneOffset()Retorna a diferença em minutos entre o tempo local e o do Meridiano de Greenwich (GMT) toString converte um objeto Date para string <script type="text/javascript"> <!-// Instanciando o objeto Date() var data = new Date(); // Referenciando aos dias da semana através de Array var diasDaSemana = new Array(); diasDaSemana[0] = "Domingo"; diasDaSemana[1] = "Segunda-feira"; diasDaSemana[2] = "Terça-feira"; diasDaSemana[3] = "Quarta-feira"; diasDaSemana[4] = "Quinta-feira"; diasDaSemana[5] = "Sexta-feira"; diasDaSemana[6] = "Sábado-feira"; // Referenciando aos meses do ano através de Array var mes = new Array(); mes[0] = "Janeiro"; mes[1] = "Fevereiro"; mes[2] = "Março"; mes[3] = "Abril"; mes[4] = "Maio"; mes[5] = "Junho"; mes[6] = "Julho"; mes[7] = "Agosto"; mes[8] = "Setembro"; mes[9] = "Outubro"; mes[10] = "Novembro"; mes[11] = "Dezembro"; // Dia da semana, dia do mês de mês de ano. alert(“Hoje " + diasDaSemana[data.getDay()] + ", " + data.getDate() + " de " + mes[data.getMonth()] + " de " + data.getFullYear() ); //--> </script> String String literal x Objeto String Métodos do objeto string em string literal convertem a última para objeto var v1 = “teste"; var v2 = new String(“teste"); alert("A variável v1 contém: " + v1.length + " caracteres."); alert("A variável v2 contém: " + v2.length + " caracteres."); // Ambos retornam 5 String Métodos indexOf()Retorna a posição da primeira ocorrência de um valor especificado em uma string. lastIndexOf()Retorna a posição da última ocorrência de um valor especificado em uma string. match()Procura por um valor específico em uma string. Se encontrado, ele (valor) é retornado, caso contrário, retorna null. replace()Substitue alguns caracteres por outros caracteres em uma string. toLowerCase()Exibe os caracteres da string em minúsculos. toUpperCase()Exibe os caracteres da string em maiúsculos. substr()Extrai uma quantidade específica de caracteres de uma string a partir de um índice inicial. substring()Extrai os caracteres de uma string entre dois índices var to_indexOf = "Brasil"; alert("A posição da letra \"s\" na palavra Brasil é: " + to_indexOf.indexOf("s") + "\nLembrando que a contagem inicia-se do zero."); var to_lastIndexOf = "Minas Gerais"; alert("A última letra \"s\" no nome Minas Gerais está na posição: " + to_lastIndexOf.lastIndexOf("s") + "\nLembrando que a contagem inicia-se do zero."); var to_match = “ober|oberdan"; alert("O e-mail informado contém (@): " + to_match.match("@")); var to_replace = "Exemplo do método replace.\nViva a violência.\nSeja feliz!\n:)"; alert(to_replace.replace("Viva","Diga não ")); var to_cases = "Exemplo do método toLowerCase() e toUpperCase respectivamente.\nObErDaN"; alert(to_cases.toLowerCase()); alert(to_cases.toUpperCase()); var to_substr = "Ódio e Amor"; alert(to_substr.substr(7)); var to_substring = “Testando o uso de substring."; alert(to_substring.substring(0,9)); Math Objeto usado para tarefas matemáticas Relação dos valores matemáticos que podem ser acessados pelo objeto Math. Math Métodos ceil() Arredonda o valor informado para cima até o número inteiro mais próximo. Veja o exemplo: var numero = 6.1; alert(Math.ceil(numero)); // Exibirá o valor 7. floor() Arredonda o valor informado para baixo até número inteiro mais próximo. Veja o exemplo: var numero = 6.1; alert(Math.floor(numero)); // Exibirá o valor 6. Math max() Retorna o número de maior valor entre dois números especificados. var numero1 = 6.7; var numero2 = 3.8; alert(Math.max(numero1,numero2)); // Exibirá o valor 6.7 min() Retorna o número de menor valor entre dois números especificados. var numero1 = 6.7; var numero2 = 3.8; alert(Math.min(numero1,numero2)); // Exibirá o valor 3.8 Math random() Retorna um número entre 0 e 1. alert(Math.random()); // Exibirá números aleatórios entre 0 e 1 - Ex.: 0.8335737463859384 alert(Math.random()*59); // Exibirá números aleatórios entre 0 e 59 - Ex.: 58.92792655560298 round() Arredonda o valor informado para o número inteiro mais próximo, seja positivo ou negativo. var numero1 = 6.7; alert(Math.round(numero1)); // Exibirá o valor 7 var numero2 = -3.8; alert(Math.round(numero2)); // Exibirá o valor -4 Boolean Constructor Propriedade constructor é uma referencia a função que criou o objeto <script type="text/javascript"> var test=new Boolean(); if (test.constructor==Array) { document.write("This is an Array"); } if (test.constructor==Boolean) { document.write("This is a Boolean"); } if (test.constructor==Date) { document.write("This is a Date"); } if (test.constructor==String) { document.write("This is a String"); } </script> Boolean Prototype Propriedade que permite acrescer propriedades e métodos a um objeto Sintaxe: object.prototype.name=value <script type="text/javascript"> function employee(name,jobtitle,born) { this.name=name; this.jobtitle=jobtitle; this.born=born; } var fred=new employee("Fred Flintstone","Caveman",1970); employee.prototype.salary=null; fred.salary=20000; document.write(fred.salary); // imprime 200 </script> Boolean toSource Representa o source de um objeto <script type="text/javascript"> function employee(name,jobtitle,born) { this.name=name; this.jobtitle=jobtitle; this.born=born; } var fred=new employee("Fred Flintstone","Caveman",1970); document.write(fred.toSource()); </script> Imprime: ({name:"Fred Flintstone", jobtitle:"Caveman", born:1970}) Boolean toString Converte um valor booleano para string e retorna esse valor <script type="text/javascript"> var boo = new Boolean(true); document.write(boo.toString()); </script> Imprime: true Boolean valueOf Retorna o valor primitivo de um objeto <script type="text/javascript"> var boo = new Boolean(false); document.write(boo.valueOf()); </script> Imprime: false Eventos Onsubmit Esse evento trabalha em conjunto com uma função da seguinte forma: associamos ao formulário a chamada de uma função e esta tem por objetivo validar os dados submetidos e retornar um valor verdadeiro (true) ou falso (false). Se o valor retornado for verdadeiro, o formulário é enviado, caso contrário, o envio é bloqueado até que os dados sejam preenchidos como desejamos. ... .. onsubmit="return confereFormulario();" ... Eventos Onerror Quando um erro de leitura de uma página ou imagem ocorre <img src="image.gif" onerror="alert('The image could not be loaded.')"> Eventos Onresize Quando uma janela ou frame é redimensionado <body onresize="alert('You have changed the size of the window')"> .... </body> Eventos Onabort Quando o carregamento de uma imagem é abortado <img src="image_w3default.gif" onabort="alert('Error: Loading of the image was aborted')"> Eventos onfocus, onblur e onchange onfocus ocorre quando o usuário clica em um link ou em um campo de texto e o foco é mantido até que outro elemento o ganhe. onblur é executado quando o elemento perde o foco onchange (ao trocar/mudar) é quando alteramos uma opção na lista de um combobox .. onfocus="funcaoParaFocus();" onblur="funcaoParaBlur();" ... <select ... onchange="funcaoParaChange();" ...> Eventos Onselect Quando um texto é selecionado em uma textarea ou em um campo text <form> Selecione o texto: <input type="text" value="Hello world!" onselect="alert(‘Voce selecionou texto.')"> <br /><br /> Seleciona o texto: <textarea cols="20" rows="5" onselect="alert(‘Voce selecionou texto.')"> Hello world!</textarea> </form> Eventos onkeydown, onkeypress e onkeyup onkeydown e onkeypress são semelhantes e ocorrem quando uma tecla é pressionada pelo usuário em seu teclado. onkeyup é executado quando a tecla é liberada, ou seja, ela foi pressionada e em seguida liberada. ... onkeydown="funcaoParaKeyDown();" ... ... onkeypress="funcaoParaKeyPress();" ... ... onkeyup="funcaoParaKeyUp();" ... Eventos Onreset Quando o botão reset é pressionado <form onreset="alert('The form will be reset')"> Firstname: <input type="text" name="fname" value="John" /> <br /> Lastname: <input type="text" name="lname" /> <br /><br /> <input type="reset" value="Reset"> </form> Eventos Onload e unload evento onload é executado quando uma página HTML é carregada por completa, incluindo as imagens Já o evento onunload ocorre quando o usuário sai de uma página. <body onload="nomeDaFuncao();" onunload="nomeDa2ºFuncao();"> Eventos Onclick Ocorre quando clica em algum elemento da página ... onclick="javascript:nomeDaFuncao(algumParametroSeHouver);" ... Onmouseover e onmouseout nmouseover é acionado quando o mouse se localiza na área de um elemento, onmouseout é executado quando ele (mouse) sai dessa área onmouseover="funcaoParaMouseOver();" onmouseout="funcaoParaMouseOut();" Eventos Ondblclick Quando ocorre um duplo-click <html> <body> Campo1: <input type="text" id="field1" value="Hello World!"> <br /> Campo2: <input type="text" id="field2"> <br /><br /> Clique para copiar o conteudo do Campo1 para o Campo2 <br /> <button ondblclick="document.getElementById('field2').value=“document.getElementById('fie ld1').value">Copiar o conteudo</button> </body> </html> Eventos Onmousedown Quando o botão do mouse é clicado ... onmousedown=“funcao()”... <img src="image_w3default.gif" onmousedown="alert('You clicked the picture!')"> Eventos Onmousemove Quando o ponteiro do mouse é movido Por padrão o onmousemove não é um evento de nenhum objeto já que esse evento acontece muito frequentemente Cuidado no uso: cada vez que mouse é movido e o evento é tratado recursos do SO são consumidos <img src="image_w3default.gif" alt="W3Schools" onmousemove="alert('Visit W3Schools!')" /> Eventos Onmouseup Quando o botão do mouse é solto <img src="image_w3default.gif" onmouseup="alert('You clicked the picture!')">