SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
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?
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?

Más contenido relacionado

La actualidad más candente

LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16
Carlos Santos
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
Maurício Linhares
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
Otávio Calaça Xavier
 

La actualidad más candente (20)

LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16
 
Javascript
JavascriptJavascript
Javascript
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 
Curso de PHP - Objetos
Curso de PHP - ObjetosCurso de PHP - Objetos
Curso de PHP - Objetos
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Autorização com CanCan
Autorização com CanCanAutorização com CanCan
Autorização com CanCan
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
JAVA - Pacotes
JAVA - PacotesJAVA - Pacotes
JAVA - Pacotes
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Interface grafica
Interface graficaInterface grafica
Interface grafica
 
J query 1
J query 1J query 1
J query 1
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Scala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosScala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetos
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHP
 
Minicurso de jQuery
Minicurso de jQueryMinicurso de jQuery
Minicurso de jQuery
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 

Destacado (6)

Javascript - Biblioteca Jquery
Javascript - Biblioteca JqueryJavascript - Biblioteca Jquery
Javascript - Biblioteca Jquery
 
Angular js
Angular jsAngular js
Angular js
 
Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02
 
Módulo 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptMódulo 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptMódulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
 

Similar a T04_LM3: Javascript (2013-2014)

Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
Wesley Lemos
 
LabMM3 - Aula teórica 05
LabMM3 - Aula teórica 05LabMM3 - Aula teórica 05
LabMM3 - Aula teórica 05
Carlos Santos
 
(A15) LabMM3 - JavaScript - Objectos: String, Date e Math
(A15) LabMM3 - JavaScript - Objectos: String, Date e Math(A15) LabMM3 - JavaScript - Objectos: String, Date e Math
(A15) LabMM3 - JavaScript - Objectos: String, Date e Math
Carlos Santos
 
Introdução ao JS1.pptx
Introdução ao JS1.pptxIntrodução ao JS1.pptx
Introdução ao JS1.pptx
LuanDev1
 
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
Microfundamento - Algoritmos e Lógica de Programação (1).pdfMicrofundamento - Algoritmos e Lógica de Programação (1).pdf
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
FelipeSoares580387
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
Paulo Morgado
 

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

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

Más de Carlos Santos

AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
Carlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
Carlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
Carlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
Carlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
Carlos Santos
 

Más de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
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 (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Último

ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
azulassessoria9
 

Último (20)

Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 

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?
  • 3.
  • 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?