SlideShare uma empresa Scribd logo
JavaScript
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 04 - 06, 20-09-2013
getElementByID
• Retorna uma referência para o primeiro objeto identificado por ID
• document.getElementById( id );
• id é uma string case-sensitive com o ID do elemento a encontrar;
• ex: document.getElementById(“areaOutput”);
• o método retorna null se o elemento não for encontrado;
• Porque é que é tão importante?
T04_LM3: Javascript (2013-2014)
Tipos de input
• formulários -> submit
• uma tecla pressionada
• um click num elemento
• um movimento do cursor
• uma página ou imagem que acabou de carregar
• ...
Como sabemos que houve um input?
• eventos
• o código é notificado quando acontece um evento específico sobre um
elemento pré-determinado
• o programador decide quais os eventos que quer receber no seu código
• pooling
• métodos de “escuta” periódica por algum tipo de input/atividade
• timers são fundamentais nesta estratégia
• os formulários podem ter um comportamento diferente
Eventos
• Eventos declarados nos atributos do HTML
<button id="myBtn" onclick="fazPino()">
Faz o pino
</button>
• Eventos associados através do DOM
<script>
document.getElementById("myBtn").onclick=function() {fazPino()};
</script>
Lista de eventos disponíveis
http://www.w3schools.com/jsref/dom_obj_event.asp
fazPino() - o que é?
• é um sub-algoritmo!
• no javascript só existe um tipo de sub-algoritmo: funções
• um exemplo:
Sub-algoritmos - O que são?
• Subalgoritmos são algoritmos dentro de algoritmos que compreendem um
conjunto de instruções dedicadas à resolução de uma tarefa ou problema.
• são identificados por um nome único que é definido na sua declaração;
• são invocados através do seu nome único;
• Conceptualmente, podem-se distinguir dois tipos de sub-algoritmos:
• procedimentos: definem um conjunto de instruções a executar;
• funções: definem um conjunto de instruções a executar e retornam um
valor final.
Funções em Javascript (sem parâmetros)
function nomeFunção ()
{
// código a executar
[return valor;]
}
identificador único
do sub-algoritmo/
função
valor a retornar pela
função (opcional)
nomeFunção ();
declaração
invocação
Como aceder ao DOM?
• obter o conteúdo de um elemento
var a=document.getElementById("intro").innerHTML;
• alterar o conteúdo ou estilo de um elemento
document.getElementById("intro").innerHTML="Novo cont.";
document.getElementById("parag3").style.color="red";
• adicionar um novo elemento...
element.appendChild(newElement);
• remover um elemento...
parent.removeChild(child);
Para elementos dos formulários...
• não se utiliza a propriedade innerHTML
• os valores dos campos dos formulários podem ser obtidos ou alterados
através da propriedade value!
• exemplos:
var a=document.getElementById("inputA").value;
document.getElementById("inputA").value = "10";
• o valor retornado é uma string. Se necessário, pode ser convertida para um
número.
Tipos de dados
• Diferentes abordagens por linguagem de programação
• strongly typed
• obrigatório explicitar o tipo de dados;
• grandes restrições para operações entre diferentes tipos de dados.
• weakly typed
• mais fácil de utilizar mas mais suscetível a erros do programador;
• em alguns casos... “seja o que o interpretador quiser”; :)
• necessário perceber os fundamentos para controlar os resultados
obtidos em algumas situações mais específicas.
Tipos de dados: tipos numéricos em C
Tabela retirada de http://www.lix.polytechnique.fr/~liberti/public/
computing/prog/c/C/CONCEPT/data_types.html
Tipos de dados: JavaScript
• Tipos de dados mais comuns:
• Numéricos
• inteiros (ex: 243, -9, 0)
• frações/floating-point (ex: 1.2321, -43243.2)
• Texto/strings
• “...” ou ‘...’
• Booleanos
• Verdadeiro (true) ou Falso (false)
Tipos de dados: Escrever strings com ‘ ou “
• => It’s nice!
• ‘It’s nice!’
• “It’s nice!”
• ‘It’s nice!’ //sequência de escape com 
• => É “fabuloso”!
• “É “fabuloso”!”
• ‘É “fabuloso”!’
• “É ”fabuloso”!”
Tipos de dados: Exemplo sequências de escape
Tabela retirada de “Beginning JavaScript, pág 19
Armazenamento de informação
• Armazenamento temporário
• Variáveis
• armazenadas na memória do computador
• grande velocidade de leitura e escrita
• Armazenamento permanente
• Ficheiros
• txt, cookies,...
• Bases de dados
• em LabMM 4!
• Case sensitive
• mVariavel é diferente de mvariavel
• Palavras chave e palavras reservadas
• todas as palavras que fazem parte da linguagem e mais algumas...
• http://www.quackit.com/javascript/javascript_reserved_words.cfm (lista completa)
• Caracteres proibidos - todos os especiais com exceção do “_” e “$”
• &, %, ?,... (palavras com acentos não devem ser utilizadas!)
• Nomes têm que começar com: letra, “_” ou “$”
• Ser consistente nos nomes e na forma!
• por exemplo, lower camel case, nomes com significado, prefixos,...
Variáveis: JavaScript
• Declaração
• var minhaVariavel;
• Atribuição
• minhaVariavel = 30;
• var outraVariavel = “Olá”;
• minhaVariavel = outraVariavel;
• Valor de uma variável não inicializada
• undefined
Variáveis: JavaScript
• Para saber o tipo de dados armazenado numa variável
• typeof(variavel); // retorna o tipo de dados armazenado
• Resultados possíveis:
• “undefined”
• “boolean”
• “string”
• “number”
• “object” //se é um objecto ou null
• “function”
typeof() - Qual o tipo de dados?
Cálculos numéricos: expressões
• Atribuição de valores a variáveis
• var intTotal = 10; // O “=” é o operador de atribuição
• var jogoA = 4, jogoB;
• jogoB = 5;
• intTotal = jogoA + jogoB; // resultado?
Operadores aritméticos
• Operadores base
• +, -, *, /
• % Módulo (resto da divisão inteira)
• a = 13 % 4; => 1
• ++/-- Incremento/Decremento
• y++; => y = y + 1;
• y--; => y = y - 1;
• NOTA: numa expressão, y++ ou ++y pode provocar resultados diferentes
• - negação
• y = -a;
Operadores de atribuição
• Outros operadores
• x += 5; => x = x + 5;
• x += z; => x = x + z;
• x -= 5; => x = x - 5;
• x *= 5; => x = x * 5;
• x /= 5; => x = x / 5;
• x %= 5; => x = x % 5;
• Assumindo um valor inicial de x = 10 e z = 2, qual o resultado de cada
uma das expressões anteriores?

Mais conteúdo relacionado

PDF
(A06) LabMM3 - JavaScript
PDF
Php5 e a orientação a objetos
PPTX
Javascript para CSharpers - Append B - jQuery
PPTX
Minicurso Javascript
PPTX
jQuery básico (parte 1)
PDF
(Re)pensando a OOP - Flisol Gyn
KEY
Desenvolvimento iOS - Aula 1
PDF
Java script aula 06 - dom
(A06) LabMM3 - JavaScript
Php5 e a orientação a objetos
Javascript para CSharpers - Append B - jQuery
Minicurso Javascript
jQuery básico (parte 1)
(Re)pensando a OOP - Flisol Gyn
Desenvolvimento iOS - Aula 1
Java script aula 06 - dom

Mais procurados (20)

PDF
LabMM3 - Aula teórica 16
PPTX
PDF
JavaScript e JQuery para Webdesigners
PDF
Workshop Django
PDF
Curso de PHP - Objetos
PDF
PHP para Adultos: Clean Code e Object Calisthenics
PDF
Autorização com CanCan
PDF
Orientação a Objetos em Python
PPT
Java Desktop
PPTX
JAVA - Pacotes
PDF
Curso java 03 - métodos e parâmetros
PDF
Interface grafica
PPT
J query 1
PDF
Object Calisthenics: relaxe e escreva códigos simples
PDF
Scala: unindo programação funcional e orientação a objetos
PDF
Removendo o cheiro ruim do seu código - SoLiSC 2011
PDF
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
KEY
PHPubSP Object Calisthenics aplicado ao PHP
PDF
Minicurso de jQuery
PDF
PHP 5.3 - Classes e Objetos
LabMM3 - Aula teórica 16
JavaScript e JQuery para Webdesigners
Workshop Django
Curso de PHP - Objetos
PHP para Adultos: Clean Code e Object Calisthenics
Autorização com CanCan
Orientação a Objetos em Python
Java Desktop
JAVA - Pacotes
Curso java 03 - métodos e parâmetros
Interface grafica
J query 1
Object Calisthenics: relaxe e escreva códigos simples
Scala: unindo programação funcional e orientação a objetos
Removendo o cheiro ruim do seu código - SoLiSC 2011
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
PHPubSP Object Calisthenics aplicado ao PHP
Minicurso de jQuery
PHP 5.3 - Classes e Objetos
Anúncio

Destaque (6)

PDF
Javascript - Biblioteca Jquery
PDF
Angular js
PDF
Lógica de Programação com Javascript - Aula #02
PPTX
Módulo 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
PDF
Javascript aula 01 - visão geral
PPTX
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Javascript - Biblioteca Jquery
Angular js
Lógica de Programação com Javascript - Aula #02
Módulo 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Javascript aula 01 - visão geral
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Anúncio

Semelhante a T04_LM3: Javascript (2013-2014) (20)

PDF
Introdução a JavaScript
PPTX
Javascript para CSharpers 4 - POO
PDF
LabMM3 - Aula teórica 05
PDF
Introdução à MEAN Stack
PDF
(A15) LabMM3 - JavaScript - Objectos: String, Date e Math
PPTX
JavaScript "for dummies"
PDF
Objetos Pythonicos - compacto
PPTX
Introdução ao JS1.pptx
PPTX
02 algoritmo
PDF
Minicurso javascript
PDF
Introducao Google GO
PDF
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
PDF
Introdução ao MongoDB em 30 slides
PDF
Padrões de refatoração
PDF
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
PPT
CSS & JQquery
PDF
Minicurso de Django - Desenvolvimento ágil web com Django e Python
PDF
De Zero à Web com Python e Django
PPTX
As Novidades Do C# 4.0 - NetPonto
Introdução a JavaScript
Javascript para CSharpers 4 - POO
LabMM3 - Aula teórica 05
Introdução à MEAN Stack
(A15) LabMM3 - JavaScript - Objectos: String, Date e Math
JavaScript "for dummies"
Objetos Pythonicos - compacto
Introdução ao JS1.pptx
02 algoritmo
Minicurso javascript
Introducao Google GO
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
Introdução ao MongoDB em 30 slides
Padrões de refatoração
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
CSS & JQquery
Minicurso de Django - Desenvolvimento ágil web com Django e Python
De Zero à Web com Python e Django
As Novidades Do C# 4.0 - NetPonto

Mais de Carlos Santos (20)

PDF
Modelo de CBL transversal ao 1º ano do ciclo de estudos do Mestrado em Comuni...
PPTX
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
PPTX
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
PDF
Is AI the Spice of our future?
PPTX
Mentoria entre pares de estudantes para estudantes
PDF
1º Encontro Científico TCEdu
PDF
Tecnologias da Comunicação em Educação 2018: Aula inicial
PPTX
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
PDF
AVILA Crew – Uma experiência de tutoria de alunos para alunos
PDF
chmod 777 education
PPTX
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
PDF
Tecnologias da Comunicação em Educação: trabalho prático
PPTX
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
PDF
chmod 777 education
PDF
SAPO Campus towards a
 Smart Learning Environment
PDF
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
PDF
A technological approach to Open and Social Learning: 
the SAPO Campus project
PDF
SAPO Campus: Gamification em contexto educativo
PDF
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
PDF
T20_LM3: APIs e Scoreoid
Modelo de CBL transversal ao 1º ano do ciclo de estudos do Mestrado em Comuni...
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
Dataficação no Ensino Superior: Reflexões sobre Ética, Impacto e Transformaç...
Is AI the Spice of our future?
Mentoria entre pares de estudantes para estudantes
1º Encontro Científico TCEdu
Tecnologias da Comunicação em Educação 2018: Aula inicial
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
chmod 777 education
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Tecnologias da Comunicação em Educação: trabalho prático
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
chmod 777 education
SAPO Campus towards a
 Smart Learning Environment
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
A technological approach to Open and Social Learning: 
the SAPO Campus project
SAPO Campus: Gamification em contexto educativo
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
T20_LM3: APIs e Scoreoid

Último (20)

PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PDF
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
PPTX
biossegurança e segurança no trabalho (6).pptx
PPTX
disciplulado curso preparatorio para novos
PDF
Cantores.pdf-Deslandes, Tinoco e Zambujo
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PDF
Ementa 2 semestre PEI Orientação de estudo
PDF
A Revolução Francesa de 1789 slides história
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PPTX
O Romantismo e a identidade brasileira..
PDF
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
PPT
sistema reprodutor para turmas do oitavo ano
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPT
Imperio Bbrasileiro-1822-1889 - aspectos gerais
PDF
Organizador Curricular da Educação em Tempo Integral.pdf
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PPT
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
biossegurança e segurança no trabalho (6).pptx
disciplulado curso preparatorio para novos
Cantores.pdf-Deslandes, Tinoco e Zambujo
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
Ementa 2 semestre PEI Orientação de estudo
A Revolução Francesa de 1789 slides história
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
O Romantismo e a identidade brasileira..
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
sistema reprodutor para turmas do oitavo ano
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
Imperio Bbrasileiro-1822-1889 - aspectos gerais
Organizador Curricular da Educação em Tempo Integral.pdf
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
GUERRAFRIA.pptdddddddddddddddddddddddddx
HISTOLOGIA VEGETAL - tecidos vegetais.ppt

T04_LM3: Javascript (2013-2014)

  • 1. JavaScript Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 04 - 06, 20-09-2013
  • 2. getElementByID • Retorna uma referência para o primeiro objeto identificado por ID • document.getElementById( id ); • id é uma string case-sensitive com o ID do elemento a encontrar; • ex: document.getElementById(“areaOutput”); • o método retorna null se o elemento não for encontrado; • Porque é que é tão importante?
  • 4. Tipos de input • formulários -> submit • uma tecla pressionada • um click num elemento • um movimento do cursor • uma página ou imagem que acabou de carregar • ...
  • 5. Como sabemos que houve um input? • eventos • o código é notificado quando acontece um evento específico sobre um elemento pré-determinado • o programador decide quais os eventos que quer receber no seu código • pooling • métodos de “escuta” periódica por algum tipo de input/atividade • timers são fundamentais nesta estratégia • os formulários podem ter um comportamento diferente
  • 6. Eventos • Eventos declarados nos atributos do HTML <button id="myBtn" onclick="fazPino()"> Faz o pino </button> • Eventos associados através do DOM <script> document.getElementById("myBtn").onclick=function() {fazPino()}; </script> Lista de eventos disponíveis http://www.w3schools.com/jsref/dom_obj_event.asp
  • 7. fazPino() - o que é? • é um sub-algoritmo! • no javascript só existe um tipo de sub-algoritmo: funções • um exemplo:
  • 8. Sub-algoritmos - O que são? • Subalgoritmos são algoritmos dentro de algoritmos que compreendem um conjunto de instruções dedicadas à resolução de uma tarefa ou problema. • são identificados por um nome único que é definido na sua declaração; • são invocados através do seu nome único; • Conceptualmente, podem-se distinguir dois tipos de sub-algoritmos: • procedimentos: definem um conjunto de instruções a executar; • funções: definem um conjunto de instruções a executar e retornam um valor final.
  • 9. Funções em Javascript (sem parâmetros) function nomeFunção () { // código a executar [return valor;] } identificador único do sub-algoritmo/ função valor a retornar pela função (opcional) nomeFunção (); declaração invocação
  • 10. Como aceder ao DOM? • obter o conteúdo de um elemento var a=document.getElementById("intro").innerHTML; • alterar o conteúdo ou estilo de um elemento document.getElementById("intro").innerHTML="Novo cont."; document.getElementById("parag3").style.color="red"; • adicionar um novo elemento... element.appendChild(newElement); • remover um elemento... parent.removeChild(child);
  • 11. Para elementos dos formulários... • não se utiliza a propriedade innerHTML • os valores dos campos dos formulários podem ser obtidos ou alterados através da propriedade value! • exemplos: var a=document.getElementById("inputA").value; document.getElementById("inputA").value = "10"; • o valor retornado é uma string. Se necessário, pode ser convertida para um número.
  • 12. Tipos de dados • Diferentes abordagens por linguagem de programação • strongly typed • obrigatório explicitar o tipo de dados; • grandes restrições para operações entre diferentes tipos de dados. • weakly typed • mais fácil de utilizar mas mais suscetível a erros do programador; • em alguns casos... “seja o que o interpretador quiser”; :) • necessário perceber os fundamentos para controlar os resultados obtidos em algumas situações mais específicas.
  • 13. Tipos de dados: tipos numéricos em C Tabela retirada de http://www.lix.polytechnique.fr/~liberti/public/ computing/prog/c/C/CONCEPT/data_types.html
  • 14. Tipos de dados: JavaScript • Tipos de dados mais comuns: • Numéricos • inteiros (ex: 243, -9, 0) • frações/floating-point (ex: 1.2321, -43243.2) • Texto/strings • “...” ou ‘...’ • Booleanos • Verdadeiro (true) ou Falso (false)
  • 15. Tipos de dados: Escrever strings com ‘ ou “ • => It’s nice! • ‘It’s nice!’ • “It’s nice!” • ‘It’s nice!’ //sequência de escape com • => É “fabuloso”! • “É “fabuloso”!” • ‘É “fabuloso”!’ • “É ”fabuloso”!”
  • 16. Tipos de dados: Exemplo sequências de escape Tabela retirada de “Beginning JavaScript, pág 19
  • 17. Armazenamento de informação • Armazenamento temporário • Variáveis • armazenadas na memória do computador • grande velocidade de leitura e escrita • Armazenamento permanente • Ficheiros • txt, cookies,... • Bases de dados • em LabMM 4!
  • 18. • Case sensitive • mVariavel é diferente de mvariavel • Palavras chave e palavras reservadas • todas as palavras que fazem parte da linguagem e mais algumas... • http://www.quackit.com/javascript/javascript_reserved_words.cfm (lista completa) • Caracteres proibidos - todos os especiais com exceção do “_” e “$” • &, %, ?,... (palavras com acentos não devem ser utilizadas!) • Nomes têm que começar com: letra, “_” ou “$” • Ser consistente nos nomes e na forma! • por exemplo, lower camel case, nomes com significado, prefixos,... Variáveis: JavaScript
  • 19. • Declaração • var minhaVariavel; • Atribuição • minhaVariavel = 30; • var outraVariavel = “Olá”; • minhaVariavel = outraVariavel; • Valor de uma variável não inicializada • undefined Variáveis: JavaScript
  • 20. • Para saber o tipo de dados armazenado numa variável • typeof(variavel); // retorna o tipo de dados armazenado • Resultados possíveis: • “undefined” • “boolean” • “string” • “number” • “object” //se é um objecto ou null • “function” typeof() - Qual o tipo de dados?
  • 21. Cálculos numéricos: expressões • Atribuição de valores a variáveis • var intTotal = 10; // O “=” é o operador de atribuição • var jogoA = 4, jogoB; • jogoB = 5; • intTotal = jogoA + jogoB; // resultado?
  • 22. Operadores aritméticos • Operadores base • +, -, *, / • % Módulo (resto da divisão inteira) • a = 13 % 4; => 1 • ++/-- Incremento/Decremento • y++; => y = y + 1; • y--; => y = y - 1; • NOTA: numa expressão, y++ ou ++y pode provocar resultados diferentes • - negação • y = -a;
  • 23. Operadores de atribuição • Outros operadores • x += 5; => x = x + 5; • x += z; => x = x + z; • x -= 5; => x = x - 5; • x *= 5; => x = x * 5; • x /= 5; => x = x / 5; • x %= 5; => x = x % 5; • Assumindo um valor inicial de x = 10 e z = 2, qual o resultado de cada uma das expressões anteriores?