SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
JavaScript
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 05, 26-09-2011
Vencedores do desafio
 lançado no facebook!
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 friday?

   • ‘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!
Variáveis: JavaScript

• 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
typeof() - Qual o tipo de dados?

• 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”
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 anteriore?
Regras de precedência

• Podem ser muito complexas mas para já só precisamos das aplicáveis na
  matemática básica.

  • resultado = 5 * 2 + 3; => ?

  • resultado = 5 + 2 * 3; => ?

  • resultado = 5 * (2 + 3); => ?

  • resultado = 2 + 4 * (2 - 1); => ?

• Regras globais de precedência são complexas mas simples de aplicar nos
  casos mais regulares!

  • https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence
Concatenação de strings

• Exemplos:

  • var nome = “Ana” + “Lopes”; => “AnaLopes”

  • var nome = “Ana” + “ Lopes”; => “Ana Lopes”

  • var nome = “Ana” + “ “ + “Lopes”; => “Ana Lopes”

• Concatenação de strings com números:

  • var t = “A minha idade: “ + 21; => “A minha idade: 21”
Conversão para número

• Soma de duas strings que podem ser interpretadas como número:

  • var soma = “12” + “34”; => “1234”

  • var legumes = 1 + 4 + “nabos”; => “5nabos”

  • var legumes = “nabos” + 1 + 4; => “nabos14”



• Conversão para número

  • parseInt(string); => número inteiro

  • parseFloat(string); => número real
parseInt() e parseFloat()

• Exemplos:

  • var soma = parseInt(“12”) + parseInt(“34”); => 46

  • var numero = parseInt(“342abb”); => 342

  • var numero = parseFloat(“3.02ppp”); => 3.02



• Nem sempre é possível converter para número:

  • var num = parseInt(“teste”); => NaN (Not a Number)

  • var num = parseInt(“a123”); => NaN
Tipos de dados: para mais detalhes

• Estudar Capítulo 3, até à pág. 40, do livro “Professional JavaScript for Web
  Developers”

 • Exemplos mais complexos:

   • var num3 = Number(“000011”); //11

   • isNaN(10); //false

   • if (string) -> true ou false?

   • var num3 = parseInt(“10”, 10); //10 - parsed as decimal

   • ...
Comentários

• Uma linha:

 // Isto é um comentário de uma linha
 // Para segunda linha é necessário repetir código



• Várias linhas:
 /*
        Isto é um comentário multi-linha
        que só termina quando encontrar
 */
Exemplo aula: bases numéricas

• Qual o valor de “A3” em decimal?

Mais conteúdo relacionado

Destaque

Java script...Jefferson, Felipe Coutinho
Java script...Jefferson, Felipe CoutinhoJava script...Jefferson, Felipe Coutinho
Java script...Jefferson, Felipe Coutinho
JeffersonMacarini
 
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
 

Destaque (9)

Java script1
Java script1Java script1
Java script1
 
Java script...Jefferson, Felipe Coutinho
Java script...Jefferson, Felipe CoutinhoJava script...Jefferson, Felipe Coutinho
Java script...Jefferson, Felipe Coutinho
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
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 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
 
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)
 

Semelhante a LabMM3 - Aula teórica 05

Introdução ao JS1.pptx
Introdução ao JS1.pptxIntrodução ao JS1.pptx
Introdução ao JS1.pptx
LuanDev1
 
T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)
Carlos Santos
 
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
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
JogosUnisinos
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
Wesley Lemos
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
Carlos Santos
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
Wesley Lemos
 
(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
 
LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16
Carlos Santos
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
Wesley Lemos
 
T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)
Carlos Santos
 

Semelhante a LabMM3 - Aula teórica 05 (20)

AULA-02.pdf
AULA-02.pdfAULA-02.pdf
AULA-02.pdf
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Introdução ao JS1.pptx
Introdução ao JS1.pptxIntrodução ao JS1.pptx
Introdução ao JS1.pptx
 
T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)
 
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
 
JavaScript "for dummies"
JavaScript "for dummies"JavaScript "for dummies"
JavaScript "for dummies"
 
Swift em 45 minutos - TDC Sao Paulo 2014
Swift em 45 minutos - TDC Sao Paulo 2014Swift em 45 minutos - TDC Sao Paulo 2014
Swift em 45 minutos - TDC Sao Paulo 2014
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
 
02 algoritmo
02   algoritmo02   algoritmo
02 algoritmo
 
(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
 
LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16LabMM3 - Aula teórica 16
LabMM3 - Aula teórica 16
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
 
PHP
PHPPHP
PHP
 
T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)
 
Introdução a java
Introdução a javaIntrodução a java
Introdução a java
 

Mais 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
 
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
 
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
Carlos Santos
 
T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)
Carlos Santos
 
T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)
Carlos Santos
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
Carlos Santos
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
Carlos Santos
 

Mais 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
 
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)
 
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
 
T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)
 
T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)
 
Web APIs
Web APIsWeb APIs
Web APIs
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
 

Último

8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Último (20)

Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
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...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
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
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 

LabMM3 - Aula teórica 05

  • 1. JavaScript Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 05, 26-09-2011
  • 2. Vencedores do desafio lançado no facebook!
  • 3. 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)
  • 4. Tipos de dados: Escrever strings com ‘ ou “ • => It’s friday? • ‘It’s nice!’ • “It’s nice!” • ‘It’s nice!’ //sequência de escape com • => É “fabuloso”! • “É “fabuloso”!” • ‘É “fabuloso”!’ • “É ”fabuloso”!”
  • 5. Tipos de dados: Exemplo sequências de escape Tabela retirada de “Beginning JavaScript, pág 19
  • 6. 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!
  • 7. Variáveis: JavaScript • 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,...
  • 8. 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
  • 9. typeof() - Qual o tipo de dados? • 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”
  • 10. 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?
  • 11. 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;
  • 12. 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 anteriore?
  • 13. Regras de precedência • Podem ser muito complexas mas para já só precisamos das aplicáveis na matemática básica. • resultado = 5 * 2 + 3; => ? • resultado = 5 + 2 * 3; => ? • resultado = 5 * (2 + 3); => ? • resultado = 2 + 4 * (2 - 1); => ? • Regras globais de precedência são complexas mas simples de aplicar nos casos mais regulares! • https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence
  • 14. Concatenação de strings • Exemplos: • var nome = “Ana” + “Lopes”; => “AnaLopes” • var nome = “Ana” + “ Lopes”; => “Ana Lopes” • var nome = “Ana” + “ “ + “Lopes”; => “Ana Lopes” • Concatenação de strings com números: • var t = “A minha idade: “ + 21; => “A minha idade: 21”
  • 15. Conversão para número • Soma de duas strings que podem ser interpretadas como número: • var soma = “12” + “34”; => “1234” • var legumes = 1 + 4 + “nabos”; => “5nabos” • var legumes = “nabos” + 1 + 4; => “nabos14” • Conversão para número • parseInt(string); => número inteiro • parseFloat(string); => número real
  • 16. parseInt() e parseFloat() • Exemplos: • var soma = parseInt(“12”) + parseInt(“34”); => 46 • var numero = parseInt(“342abb”); => 342 • var numero = parseFloat(“3.02ppp”); => 3.02 • Nem sempre é possível converter para número: • var num = parseInt(“teste”); => NaN (Not a Number) • var num = parseInt(“a123”); => NaN
  • 17. Tipos de dados: para mais detalhes • Estudar Capítulo 3, até à pág. 40, do livro “Professional JavaScript for Web Developers” • Exemplos mais complexos: • var num3 = Number(“000011”); //11 • isNaN(10); //false • if (string) -> true ou false? • var num3 = parseInt(“10”, 10); //10 - parsed as decimal • ...
  • 18. Comentários • Uma linha: // Isto é um comentário de uma linha // Para segunda linha é necessário repetir código • Várias linhas: /* Isto é um comentário multi-linha que só termina quando encontrar */
  • 19. Exemplo aula: bases numéricas • Qual o valor de “A3” em decimal?