js 101 - introdução ao javascript

35
JS 101 Introdução a Programação em JavaScript quarta-feira, 19 de outubro de 11

Upload: thecoreh

Post on 29-Jun-2015

661 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: JS 101 - Introdução ao JavaScript

JS 101Introdução a Programação em JavaScript

quarta-feira, 19 de outubro de 11

Page 2: JS 101 - Introdução ao JavaScript

Arquitetura REST

WWW

quarta-feira, 19 de outubro de 11

Page 3: JS 101 - Introdução ao JavaScript

CLIENTE-SERVIDOR

CLIENTE SERVIDOR

quarta-feira, 19 de outubro de 11

Page 4: JS 101 - Introdução ao JavaScript

STATELESS

CLIENTE SERVIDOR

CLIENTE

CLIENTE

quarta-feira, 19 de outubro de 11

Page 5: JS 101 - Introdução ao JavaScript

CACHE

CLIENTE SERVIDOR

CLIENTE

CLIENTE$

$

$

quarta-feira, 19 de outubro de 11

Page 6: JS 101 - Introdução ao JavaScript

INTERFACE COMUM

CLIENTE SERVIDOR

CLIENTE

CLIENTE

$

$

SERVIDOR$

quarta-feira, 19 de outubro de 11

Page 7: JS 101 - Introdução ao JavaScript

CAMADAS

CLIENTE PROXY

CLIENTE

CLIENTE

$

$

PROXY$

SERVIDOR

SERVIDOR$

$

quarta-feira, 19 de outubro de 11

Page 8: JS 101 - Introdução ao JavaScript

CÓDIGO SOB DEMANDA

CLIENTE PROXY

CLIENTE

CLIENTE

$

$

PROXY$

SERVIDOR

SERVIDOR$

$

quarta-feira, 19 de outubro de 11

Page 9: JS 101 - Introdução ao JavaScript

= JavaScript

quarta-feira, 19 de outubro de 11

Page 10: JS 101 - Introdução ao JavaScript

PROTOCOLO HTTPProtocolo usado na Web

“Interface Comum” mencionada pelo REST

quarta-feira, 19 de outubro de 11

Page 11: JS 101 - Introdução ao JavaScript

Anatomia do HTTP

quarta-feira, 19 de outubro de 11

Page 12: JS 101 - Introdução ao JavaScript

Anatomia do HTTP

CLIENTE SERVIDOR

Requisição

Resposta

quarta-feira, 19 de outubro de 11

Page 13: JS 101 - Introdução ao JavaScript

REQUISIÇÃO

Verbo

Resource

Cabeçalhos

Corpo da Mensagem (Opcional)

quarta-feira, 19 de outubro de 11

Page 14: JS 101 - Introdução ao JavaScript

REQUISIÇÃO

Verbo Resource Cabeçalhos

quarta-feira, 19 de outubro de 11

Page 15: JS 101 - Introdução ao JavaScript

RESPOSTA

Status

Cabeçalhos

Corpo da Mensagem

quarta-feira, 19 de outubro de 11

Page 16: JS 101 - Introdução ao JavaScript

RESPOSTA

CabeçalhosStatus

quarta-feira, 19 de outubro de 11

Page 17: JS 101 - Introdução ao JavaScript

VERBOS

GET

PUT DELETE

POST HEAD

TRACE

OPTIONS CONNECT PATCH

quarta-feira, 19 de outubro de 11

Page 18: JS 101 - Introdução ao JavaScript

STATUS (Alguns exemplos)

200 (OK)

301 (MOVED PERMANENTLY)

404 (NOT FOUND)

500 (INTERNAL SERVER ERROR)

quarta-feira, 19 de outubro de 11

Page 19: JS 101 - Introdução ao JavaScript

JavaScriptLinguagem de Programação

Alto Nível

Netscape, 1995

quarta-feira, 19 de outubro de 11

Page 20: JS 101 - Introdução ao JavaScript

JavaScript vs JavaFrequentemente Confundido com Java

Convenções de nomes são semelhantes

Ambos herdam a sintaxe do C

quarta-feira, 19 de outubro de 11

Page 21: JS 101 - Introdução ao JavaScript

ForteFraca

Estática Dinâmica

Python

C

Java

JavaScript

quarta-feira, 19 de outubro de 11

Page 22: JS 101 - Introdução ao JavaScript

Hello, World!

document.write('Hello, World!');

quarta-feira, 19 de outubro de 11

Page 23: JS 101 - Introdução ao JavaScript

Variáveis, ifs, loops

var max = 20;for (var i = 0; i < max; i++) {

if (i % 2 == 0) {document.writeln("Par: "+i);

} else {document.writeln("Impar: "+i);

}}

quarta-feira, 19 de outubro de 11

Page 24: JS 101 - Introdução ao JavaScript

Pontos-e-vírgulas São Opcionais

var max = 20for (var i = 0; i < max; i++) {

if (i % 2 == 0) {document.writeln("Par: "+i)

} else {document.writeln("Impar: "+i)

}}

quarta-feira, 19 de outubro de 11

Page 25: JS 101 - Introdução ao JavaScript

Dinamicamente Tipada

// mesma variável pode abrigar valores de// tipos diferentes ao longo da execução

var foofoo = 5foo = 'Hello'foo = false

quarta-feira, 19 de outubro de 11

Page 26: JS 101 - Introdução ao JavaScript

Fracamente Tipada

Expressão Resultado

1 == "1" .true.

2-"1" 1

1/"3" 0.3333...

2+"2" 22

quarta-feira, 19 de outubro de 11

Page 27: JS 101 - Introdução ao JavaScript

Fracamente Tipada

Expressão Resultado

1 === "1" .false.

2-"1" 1

1/"3" 0.3333...

2+parseInt("2") 4

quarta-feira, 19 de outubro de 11

Page 28: JS 101 - Introdução ao JavaScript

Arrays

var arr = [4, 32, 7, false, 'abc']

document.write(arr[0]) // 4

arr.push(9) // [4, 32, 7, false, 'abc', 9]

var p = arr.shift() // [32, 7, false, 'abc', 9]

document.write(p) // 4

quarta-feira, 19 de outubro de 11

Page 29: JS 101 - Introdução ao JavaScript

Objetos

var pessoa = {nome: ‘José’,idade: 23

}

document.write(pessoa.nome)document.write(pessoa['nome']) // equivalentes

pessoa.sexo = 'M' // perfeitamente válidodocument.write(pessoa.sexo)

quarta-feira, 19 de outubro de 11

Page 30: JS 101 - Introdução ao JavaScript

Funções

function somaDois(x) {return x+2

}

somaDois(5) // retorna 7

quarta-feira, 19 de outubro de 11

Page 31: JS 101 - Introdução ao JavaScript

Funções de Primeira Classe

var mensagem = function() {document.write('Hello!')

}

mensagem()

setTimeout(mensagem, 5000)

quarta-feira, 19 de outubro de 11

Page 32: JS 101 - Introdução ao JavaScript

Funções de Primeira Classe

var chamar10x = function(f) {for(var i = 0; i < 10; i++) {

f()}

}

chamar10x(mensagem)

var x = 0chamar10x(function(){ x++ })document.write(x) // 10

quarta-feira, 19 de outubro de 11

Page 33: JS 101 - Introdução ao JavaScript

Funções + Objetos

var pessoa = {nome: "José",sobrenome: "da Silva",nomeCompleto: function() {

return this.nome + ' ' + this.sobrenome}

}

document.write(pessoa.nomeCompleto())

quarta-feira, 19 de outubro de 11

Page 34: JS 101 - Introdução ao JavaScript

Protótipos

var Pessoa = function(nome, sobrenome){this.nome = nomethis.sobrenome = sobrenome

}Pessoa.protoype.nomeCompleto = function() {

return this.nome + ' ' + this.sobrenome}

var p = new Pessoa('José', 'da Silva')document.write(p.nomeCompleto())

quarta-feira, 19 de outubro de 11

Page 35: JS 101 - Introdução ao JavaScript

Código de Exemplo

http://github.com/coreh/js101

quarta-feira, 19 de outubro de 11