19
JavaScript Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 05, 26-09-2011

LabMM3 - Aula teórica 05

Embed Size (px)

Citation preview

Page 1: LabMM3 - Aula teórica 05

JavaScript

Carlos SantosLabMM 3 - NTC - DeCA - UAAula 05, 26-09-2011

Page 2: LabMM3 - Aula teórica 05

Vencedores do desafio lançado no facebook!

Page 3: LabMM3 - Aula teórica 05

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)

Page 4: LabMM3 - Aula teórica 05

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\”!”

Page 5: LabMM3 - Aula teórica 05

Tipos de dados: Exemplo sequências de escape

Tabela retirada de “Beginning JavaScript, pág 19

Page 6: LabMM3 - Aula teórica 05

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!

Page 7: LabMM3 - Aula teórica 05

• 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

Page 8: LabMM3 - Aula teórica 05

• 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

Page 9: LabMM3 - Aula teórica 05

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

Page 10: LabMM3 - Aula teórica 05

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?

Page 11: LabMM3 - Aula teórica 05

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;

Page 12: LabMM3 - Aula teórica 05

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?

Page 13: LabMM3 - Aula teórica 05

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

Page 14: LabMM3 - Aula teórica 05

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”

Page 15: LabMM3 - Aula teórica 05

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

Page 16: LabMM3 - Aula teórica 05

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

Page 17: LabMM3 - Aula teórica 05

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

• ...

Page 18: LabMM3 - Aula teórica 05

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-linhaque só termina quando encontrar

*/

Page 19: LabMM3 - Aula teórica 05

Exemplo aula: bases numéricas

• Qual o valor de “A3” em decimal?