js 101 - introdução ao javascript
TRANSCRIPT
JS 101Introdução a Programação em JavaScript
quarta-feira, 19 de outubro de 11
Arquitetura REST
WWW
quarta-feira, 19 de outubro de 11
CLIENTE-SERVIDOR
CLIENTE SERVIDOR
quarta-feira, 19 de outubro de 11
STATELESS
CLIENTE SERVIDOR
CLIENTE
CLIENTE
quarta-feira, 19 de outubro de 11
CACHE
CLIENTE SERVIDOR
CLIENTE
CLIENTE$
$
$
quarta-feira, 19 de outubro de 11
INTERFACE COMUM
CLIENTE SERVIDOR
CLIENTE
CLIENTE
$
$
SERVIDOR$
quarta-feira, 19 de outubro de 11
CAMADAS
CLIENTE PROXY
CLIENTE
CLIENTE
$
$
PROXY$
SERVIDOR
SERVIDOR$
$
quarta-feira, 19 de outubro de 11
CÓDIGO SOB DEMANDA
CLIENTE PROXY
CLIENTE
CLIENTE
$
$
PROXY$
SERVIDOR
SERVIDOR$
$
quarta-feira, 19 de outubro de 11
= JavaScript
quarta-feira, 19 de outubro de 11
PROTOCOLO HTTPProtocolo usado na Web
“Interface Comum” mencionada pelo REST
quarta-feira, 19 de outubro de 11
Anatomia do HTTP
quarta-feira, 19 de outubro de 11
Anatomia do HTTP
CLIENTE SERVIDOR
Requisição
Resposta
quarta-feira, 19 de outubro de 11
REQUISIÇÃO
Verbo
Resource
Cabeçalhos
Corpo da Mensagem (Opcional)
quarta-feira, 19 de outubro de 11
REQUISIÇÃO
Verbo Resource Cabeçalhos
quarta-feira, 19 de outubro de 11
RESPOSTA
Status
Cabeçalhos
Corpo da Mensagem
quarta-feira, 19 de outubro de 11
RESPOSTA
CabeçalhosStatus
quarta-feira, 19 de outubro de 11
VERBOS
GET
PUT DELETE
POST HEAD
TRACE
OPTIONS CONNECT PATCH
quarta-feira, 19 de outubro de 11
STATUS (Alguns exemplos)
200 (OK)
301 (MOVED PERMANENTLY)
404 (NOT FOUND)
500 (INTERNAL SERVER ERROR)
quarta-feira, 19 de outubro de 11
JavaScriptLinguagem de Programação
Alto Nível
Netscape, 1995
quarta-feira, 19 de outubro de 11
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
ForteFraca
Estática Dinâmica
Python
C
Java
JavaScript
quarta-feira, 19 de outubro de 11
Hello, World!
document.write('Hello, World!');
quarta-feira, 19 de outubro de 11
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
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
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
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
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
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
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
Funções
function somaDois(x) {return x+2
}
somaDois(5) // retorna 7
quarta-feira, 19 de outubro de 11
Funções de Primeira Classe
var mensagem = function() {document.write('Hello!')
}
mensagem()
setTimeout(mensagem, 5000)
quarta-feira, 19 de outubro de 11
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
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
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
Código de Exemplo
http://github.com/coreh/js101
quarta-feira, 19 de outubro de 11