SlideShare uma empresa Scribd logo
INTRODUÇÃO
AO JAVASCRIPT
Eduardo Mendes de Oliveira
edumendes@gmail.com
Eduardo Mendes (edumendes@gmail.com)
Sistemas de
2
50's
Software
Os primeiros sistemas começaram
a aparecer no final da década de 40
e mais fortemente no anos 50
Eduardo Mendes (edumendes@gmail.com)3
Apesar de já estarem presentes
há várias décadas, pode-se dizer que
só recentemente começaram a ser
usados por milhões de pessoas
no mundo todo
50's
Software
Sistemas de
Eduardo Mendes (edumendes@gmail.com)4
Profissional

Treinado Hoje
Há alguns anos uma aplicação de
software só era usada por
profissionais treinados
Hoje a maioria das pessoas
interagem diretamente com
uma ou mais aplicaçõess
Eduardo Mendes (edumendes@gmail.com)
“ Este enorme e rápido crescimento
no número de usuários de computadores
não poderia ter acontecido
sem o grande avanço na facilidade de uso

e nas técnicas
de interface que se seguiram”
5
(SMEETS, BONESS e BANKRAS, 2009)
Eduardo Mendes (edumendes@gmail.com)
O que é riqueza?
“A riqueza de um cliente é
determinada pelo

modelo de interação

que o cliente oferece ao usuário"
6
Experiência do usuário
Eduardo Mendes (edumendes@gmail.com)
O que é riqueza?
Um modelo rico de interação oferece
suporte para uma variedade

de métodos de entrada,

que responde intuitivamente

e dentro de um prazo razoável
7
Eduardo Mendes (edumendes@gmail.com)
O que é riqueza?
Interação será tanto melhor 

quanto mais próxima estiver

de uma geração atualizada

de aplicativos desktop
8
Eduardo Mendes (edumendes@gmail.com)
9
Aplicações Mainframe
Aplicações Web RicasAplicações Cliente/Servidor
Aplicações Web
Experiência
do Usuário
Eficiência do Custo
Internet
Cientistas do CERN lançaram
uma proposta para a World Wide Web (HTML)


Facilitou o compartilhamento de documentos de pesquisa
Hipertexto + Internet
1989
Eduardo Mendes (edumendes@gmail.com)
A Internet e a Web
foram se espalhando e
se tornando populares
11
Originalmente foi criada para que as pessoas
pudessem compartilhar informações, publicando documentos,
e fazer referências cruzadas a eles através de hiperlinks
90's
Entretanto a qualidade das aplicações eram baixas
Eduardo Mendes (edumendes@gmail.com)
Eduardo Mendes (edumendes@gmail.com)13
Eduardo Mendes (edumendes@gmail.com)
acessar na web
documentos

gerados dinamicamente
14
conteúdo
dinâmicoSurge a Aplicação Web
Eduardo Mendes (edumendes@gmail.com)
15
Aplicações Mainframe
Aplicações Web RicasAplicações Cliente/Servidor
Aplicações Web
Experiência
do Usuário
Eficiência do Custo
Aplicações Web Síncronas
O modelo síncrono do HTTP inviabilizava uma ideia de cliente rico
GARRET, 2005
JavaScript - Introdução com Orientação a Objetos
Jesse James Garrett
2005 Ajax: A New Approach to Web Applications
http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications/
JavaScript
O modelo síncrono
GARRET, 2005
Eduardo Mendes (edumendes@gmail.com)
Eduardo Mendes (edumendes@gmail.com)21
Eduardo Mendes (edumendes@gmail.com)
2. Questões sobre interface web
22
Eduardo Mendes (edumendes@gmail.com)
2. Questões sobre
interface web
2.1 Modularização e Separação de
interesses
2.2 A web é uma só
2.3 Progressive Enhacement
2.4 Web Design Responsivo
23
Eduardo Mendes (edumendes@gmail.com)
2.1 Modularização
e Separação de Interesses
24
Eduardo Mendes (edumendes@gmail.com)
Modularização
"Melhor maneira de criar

sistemas gerenciáveis”
PARNAS (1972)
25
Eduardo Mendes (edumendes@gmail.com)
Separation Of
Concerns (SoC)
Para tratar a complexidade é
melhor se concentrar em um
assunto de cada vez, para melhorar
a compreensão sobre o sistema e
melhorar sua capacidade de
evolução
(DIJKSTRA, 1974)
26
Eduardo Mendes (edumendes@gmail.com)
03 27
interesses
Descrição
do Conteúdo
Apresentação

do Conteúdo
Controle do

comportamento
deste Conteúdo
Eduardo Mendes (edumendes@gmail.com)28
Descrição
do ConteúdoApresentação

do Conteúdo
Controle do

comportamento
deste Conteúdo
Eduardo Mendes (edumendes@gmail.com)29
O que é JavaScript?
LiveScript
Netscape Navigator 2.0
Linguagem baseada na linguagem JAVA
Eduardo Mendes (edumendes@gmail.com)30
O que é JavaScript?
Não faz parte das plataformas Java
Destinada para o uso em páginas Web (client-side) ou em servidores web (server-side)
Front-end
JavaScript é uma linguagem interpretada.
Eduardo Mendes (edumendes@gmail.com)31
O que posso fazer com JavaScript?
Acesso à elementos de uma página web
Imagens
Elementos de um formulário
Links etc
Manipulados ou mudados via programação
Eduardo Mendes (edumendes@gmail.com)32
O que posso fazer com JavaScript?
Capturar eventos
Click do mouse
Tecla pressionada
Outros
Operações baseadas nas ações do usuário.
Eduardo Mendes (edumendes@gmail.com)33
Como usar JavaScript?
3 maneiras:
Dentro de blocos HTML
<script> ... </script>
Arquivo externo importado pela página
<script language=“javascript” src=“funcoes.js"></script>
Dentro dos elementos HTML sensíveis a eventos
<input type="text" name="nome" value="" onblur="caixaAlta(this)“ />
Eduardo Mendes (edumendes@gmail.com)34
Blocos script
<script language=“javascript”>
... instruções JavaScript ...
</script>
Podem aparecer diversas vezes no código
De preferência dentro das tags <head>
Eduardo Mendes (edumendes@gmail.com)35
Blocos Script
<html>
<head>
<script language=“javascript">
function caixaAlta(obj) {
obj.value = obj.value.toUpperCase();
}
</script>
</head>
<body>
<form name="main" action="#">
Nome:
<input type="text" name="nome" value="“ onblur="caixaAlta(this)“ />
<br /><br />
<input type="reset" name="reset" value="Limpar“ /><br />
</form>
</body>
</html>
Eduardo Mendes (edumendes@gmail.com)36
Arquivo Js para ser importado
funcoes.js
function soma(a, b) {
return a + b;
}
function multiplicacao(a, b) {
return a * b;
}
Eduardo Mendes (edumendes@gmail.com)37
Importando um arquivo
Código de importação deve vir no <head>
Atributo SRC no descritor <script>
<html>
<head>
<script language=“javascript” src=“funcoes.js"></script>
</head>
<body>
....
<script>
resultado = soma(10, 30);
document.write("<p>A soma de 5 e 6 é " + resultado + “</p>”);
</script>
Eduardo Mendes (edumendes@gmail.com)38
Em Elementos HTML
Atributos para captura de eventos disparados
Arrasto de um mouse
Clique de um botão
Quando ocorre um evento
Um procedimento de tratamento do evento é chamado
Eduardo Mendes (edumendes@gmail.com)39
Em Elementos HTML
Atributos de eventos
Sempre começam com o prefixo “ON”
onblur, onerror, onfocus, onchange, onclick, onkeydown, onkeypress, onkeyup...
Valores recebidos por esses atributos
Código JavaScript
Eduardo Mendes (edumendes@gmail.com)40
Em Elementos HTML
<form>
<input type="button“
value=“Aperte aqui“
onclick="alert(‘Botão Pressionado')“>
</form>
<a href="javascript:alert(‘Link acionado!’)"> link </a>
Eduardo Mendes (edumendes@gmail.com)
Funções
41
Eduardo Mendes (edumendes@gmail.com)
Funções
42
function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
}
Está na memória assim que
o programa carrega
Eduardo Mendes (edumendes@gmail.com)
Funções
43
construindo funções em tempo de execução
function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
}
Está na memória assim que
o programa carrega
var soma =
Eduardo Mendes (edumendes@gmail.com)
Funções
44
construindo funções em tempo de execução
function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
}
Está na memória assim que
o programa carrega
var soma = function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
A função foi atribuída
à variável soma
Eduardo Mendes (edumendes@gmail.com)
Funções
45
construindo funções em tempo de execução
function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
}
Está na memória assim que
o programa carrega
var soma = function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
É preciso de um ponto e
vírgula no final da sentença
Eduardo Mendes (edumendes@gmail.com)
Funções
46
construindo funções em tempo de execução
function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
}
Está na memória assim que
o programa carrega
var soma = function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
Agora a função carrega
apenas quando este código
for alcançado
Eduardo Mendes (edumendes@gmail.com)
Funções
47
construindo funções em tempo de execução
function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
}
Está na memória assim que
o programa carrega
var soma = function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
Agora a função carrega
apenas quando este código
for alcançado
soma(3,4);
25
Eduardo Mendes (edumendes@gmail.com)
Funções
48
construindo funções em tempo de execução
function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
}
A variável precisou de parênteses e ponto e vírgula
var soma = function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
O nome da função é opcional,
já que estamos usando uma
variável que já possui um
nome
soma(3,4);
25
Eduardo Mendes (edumendes@gmail.com)
Funções Anônimas
49
não precisam ser nomeadas já que possuem uma variável
var soma = function somaDosQuadrados(x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
Funções Anônimas
Eduardo Mendes (edumendes@gmail.com)
Funções Anônimas
50
não precisam ser nomeadas já que possuem uma variável
var soma = function (x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
Funções Anônimas
Eduardo Mendes (edumendes@gmail.com)
Funções Anônimas
51
não precisam ser nomeadas já que possuem uma variável
var soma = function (x, y){
return Math.pow(x,2) + Math.pow(y,2);
};
Funções Anônimas
Sem nome
soma(3,4);
25
Ainda precisa de parênteses e ponto e vírgula
Eduardo Mendes (edumendes@gmail.com)
Curiosidade
52
var soma = function (x, y){
return x + y;
}
console.log(soma);
Eduardo Mendes (edumendes@gmail.com)
Curiosidade
53
var soma = function (x, y){
return x + y;
}
console.log(soma);
Eduardo Mendes (edumendes@gmail.com)
1.1 Funções como
parâmetros
54
Eduardo Mendes (edumendes@gmail.com)
Funções como parâmetros
55
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
uma variável que armazena uma função pode ser passada para outras funções
Eduardo Mendes (edumendes@gmail.com)
Funções como parâmetros
56
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
A variável mensagemFinal
é passada como parâmetro
para uma função existente
uma variável que armazena uma função pode ser passada para outras funções
Eduardo Mendes (edumendes@gmail.com)
Funções como parâmetros
57
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
A variável mensagemFinal
é passada como parâmetro
para uma função existente
uma variável que armazena uma função pode ser passada para outras funções
function encerrarJogo(mensagem) {
...
mensagem();
...
}
Eduardo Mendes (edumendes@gmail.com)
Funções como parâmetros
58
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
uma variável que armazena uma função pode ser passada para outras funções
function encerrarJogo(mensagem) {
...
mensagem();
...
}
function encerrarJogo(mensagem) {
...
mensagem();
...
}
Eduardo Mendes (edumendes@gmail.com)
Funções como parâmetros
59
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
uma variável que armazena uma função pode ser passada para outras funções
function encerrarJogo(mensagem) {
...
mensagem();
...
}
function encerrarJogo( ) {
...
mensagem();
...
}
Eduardo Mendes (edumendes@gmail.com)
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
function encerrarJogo(mensagemFinal) {
...
mensagem();
...
}
Funções como parâmetros
60
uma variável que armazena uma função pode ser passada para outras funções
function encerrarJogo(mensagem) {
...
mensagem();
...
}
Eduardo Mendes (edumendes@gmail.com)
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
function encerrarJogo(mensagemFinal) {
...
mensagemFinal();
...
}
Funções como parâmetros
61
uma variável que armazena uma função pode ser passada para outras funções
function encerrarJogo(mensagem) {
...
mensagem();
...
}
Eduardo Mendes (edumendes@gmail.com)
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
function encerrarJogo(mensagemFinal) {
...
mensagemFinal();
...
}
Funções como parâmetros
62
uma variável que armazena uma função pode ser passada para outras funções
function encerrarJogo(mensagem) {
...
mensagem();
...
}
Eduardo Mendes (edumendes@gmail.com)
var mensagemFinal = function() {
alert("Fim de Jogo! Obrigado por participar!");
}
...
encerrarJogo(mensagemFinal);
function encerrarJogo(mensagemFinal) {
...
mensagemFinal();
...
}
E se houvesse várias mensagens?
63
É possível ter flexibilidade com essa estrutura e escolher uma mensagem específica
function encerrarJogo(mensagem) {
...
mensagem();
...
}
Eduardo Mendes (edumendes@gmail.com)
function encerrarJogo(mensagem) {
mensagem();
}
var mensagemFinal;
if (vencedor) {
mensagemFinal = function() {
alert("Você venceu! Batata frita!");
};
} else {
mensagemFinal = function() {
alert("Que pena! Tente mais uma vez!");
};
}
encerrarJogo(mensagemFinal);
E se houvesse várias mensagens?
64
É possível ter flexibilidade com essa estrutura e escolher uma mensagem específica
var vencedor = false;
Eduardo Mendes (edumendes@gmail.com)
function encerrarJogo(mensagem) {
mensagem();
}
var mensagemFinal;
if (vencedor) {
mensagemFinal = function() {
alert("Você venceu! Batata frita!");
};
} else {
mensagemFinal = function() {
alert("Que pena! Tente mais uma vez!");
};
}
encerrarJogo(mensagemFinal);
E se houvesse várias mensagens?
65
É possível ter flexibilidade com essa estrutura e escolher uma mensagem específica
var vencedor = true;
Eduardo Mendes (edumendes@gmail.com)
Utilizando funções arrays e map
66
var numeros = [2, 4, 5, 6, 7, 8, 9];
uma variável que armazena uma função pode ser passada para outras funções
var resultados = numeros.map( );- outra função -
o método map recebe uma
função e retorna um array
processado pela função
2 4 5 6 7 8 9
outro valor outro valor outro valor outro valor outro valor outro valor outro valor
- outra função -
Eduardo Mendes (edumendes@gmail.com)
Utilizando funções arrays e map
67
var numeros = [2, 4, 5, 6, 7, 8, 9];
Map funciona com um laço que executa sobre cada índice do array
var resultados = numbers.map( );- outra função -
var resultados = [];
for (var i = 0; i < numeros.length; i++) {
resultados[i] = algumaFuncao(numeros[i]);
}
o método map encapsula este
processamento e o resume
em uma linha de código
Eduardo Mendes (edumendes@gmail.com)
Utilizando funções arrays e map
68
var numeros = [2, 4, 5, 6, 7, 8, 9];
Map funciona com um laço que executa sobre cada índice do array
var resultados = numeros.map(function(celula) {
return celula * 2;
}
);
2 4 5 6 7 8 9
4 8 10 12 14 16 18
- função -
Eduardo Mendes (edumendes@gmail.com)
JavaScript: Objetos
69
Eduardo Mendes (edumendes@gmail.com)
Objetos em
JavaScript
Uma entidade independente com
propriedades e tipo
como em outras linguagens as
propriedades são acessadas pela
notação do ponto
70
variavel
Objeto
idade=10
variavelDoObjeto.nomeDaPropriedade o.idade
Eduardo Mendes (edumendes@gmail.com)
Criando objetos
71
var carro = new Object();
carro.fabricante = "KIA";
carro.modelo = "Picanto";
carro.ano = 2012;
carro["fabricante"] = "Volks";
carro["modelo"] = "Gol";
carro["ano"] = 2013;
pode ser utilizado como
um array associativo
Eduardo Mendes (edumendes@gmail.com)
Objetos

Literais
72
var moto = {cor: "vermelha", rodas: 4, cilindros: 4};
Eduardo Mendes (edumendes@gmail.com)
Função

Construtora
73
function Carro(fabricante, modelo, ano) {
this.fabricante = fabricante;
this.modelo = modelo;
this.ano = ano;
}
var outroCarro =
new Carro("Hyundai", "Tucson", 2009);
var aqueleCarro =
new Carro("Ford", "Fiesta", 2014);
Eduardo Mendes (edumendes@gmail.com)
Métodos
74
var moto = {cor: "vermelha", rodas: 4, cilindros: 4};
Como foi visto
os objetos são formados por
propriedades
Eduardo Mendes (edumendes@gmail.com)
Métodos
75
variavelDoObjeto.nomeDoMetodo =
nome_funcao;
São funções associadas a um objeto…
ou é uma propriedade de um objeto

que é uma função
um método é uma função atribuída

a uma propriedade do objeto
var meuObjeto = {
meuMetodo: function(params) {
// algum comportamento
}
};
Eduardo Mendes (edumendes@gmail.com)76
Métodos
function Moto(cor, rodas, cilindros) {
this.cor = cor;
this.rodas = rodas;
this.cilindros = cilindros;
}
function exibirDados() {
var resultado =
"Dados da moto: cor - " + this.cor
+ ", rodas: " + this.rodas
+ ", cilindros: " + this.cilindros;
alert(resultado);
}
this.exibirDados = exibirDados;

Mais conteúdo relacionado

PDF
Curso de HTML5 - Aula 01
PPT
Aula javascript
PPTX
Introdução básica ao JavaScript
PDF
Introdução a JavaScript
PDF
Node.js - #1 - Introdução - Rodrigo Branas
PDF
Introdução a HTML, CSS, JS, Ajax
PDF
Introdução ao MySQL
PPTX
Introdução a HTML5
Curso de HTML5 - Aula 01
Aula javascript
Introdução básica ao JavaScript
Introdução a JavaScript
Node.js - #1 - Introdução - Rodrigo Branas
Introdução a HTML, CSS, JS, Ajax
Introdução ao MySQL
Introdução a HTML5

Mais procurados (20)

PDF
HTML Principios Básicos
PPTX
10 Java Script - Exemplos práticos
PDF
Programação Web com HTML e CSS
PDF
Introdução ao desenvolvimento Web
PPT
Minicurso de JavaScript (Portuguese)
PDF
Java script - funções
PDF
Plano de aula sobre HTML básico
PPTX
Front End x Back End
PDF
Introdução à Programação Web com Angular
PPTX
Introdução a programação para a Internet
PDF
Curso de css3 unidade 1 - introdução ao css
PPT
PDF
Aula 6 - Design e Processo de Design de Interfaces de Usuário
PDF
PPTX
Aula 4 banco de dados
PDF
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
PDF
Curso de Desenvolvimento Web - Módulo 01 - HTML
PDF
Fundamentos de arquitetura Web
PPTX
Introdução ao CSS
PPTX
Lab #2: Introduction to Javascript
HTML Principios Básicos
10 Java Script - Exemplos práticos
Programação Web com HTML e CSS
Introdução ao desenvolvimento Web
Minicurso de JavaScript (Portuguese)
Java script - funções
Plano de aula sobre HTML básico
Front End x Back End
Introdução à Programação Web com Angular
Introdução a programação para a Internet
Curso de css3 unidade 1 - introdução ao css
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 4 banco de dados
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
Curso de Desenvolvimento Web - Módulo 01 - HTML
Fundamentos de arquitetura Web
Introdução ao CSS
Lab #2: Introduction to Javascript
Anúncio

Destaque (20)

PDF
GWT revista espirito
PDF
Adote OpenJDK
PDF
Abstração do banco de dados com PHP Doctrine
PDF
Conhecendo Java
PPTX
Fundamentos de Java
PDF
Web Semântica e bancos de dados NoSQL
PDF
Fundamentos de java herbert schildt
PDF
Java - Aprenda rápido
PDF
Introdução ao JPA com Hibernate
PDF
Persistência com JPA usando o NetBeans 7
PDF
PDF
Java Web 4 - Servlets e JSP 2
PDF
The Power of Collaboration to Build Your Own Startup
PDF
TDD - Prática com RSpec
PDF
RSpec com doubles
PDF
Desenvolvimento web com PHP parte 3
PDF
Introdução ao TDD
PDF
Evolucao de software - parte 2
PDF
Desenvolvimento Web com PHP parte 7
GWT revista espirito
Adote OpenJDK
Abstração do banco de dados com PHP Doctrine
Conhecendo Java
Fundamentos de Java
Web Semântica e bancos de dados NoSQL
Fundamentos de java herbert schildt
Java - Aprenda rápido
Introdução ao JPA com Hibernate
Persistência com JPA usando o NetBeans 7
Java Web 4 - Servlets e JSP 2
The Power of Collaboration to Build Your Own Startup
TDD - Prática com RSpec
RSpec com doubles
Desenvolvimento web com PHP parte 3
Introdução ao TDD
Evolucao de software - parte 2
Desenvolvimento Web com PHP parte 7
Anúncio

Semelhante a JavaScript - Introdução com Orientação a Objetos (20)

PPT
Curso PHP: Básico JavaScript
PPT
Aula2
PPT
Javascript não é Java+Script (TDC Floripa 2012)
PDF
Aprender Javascript e jQuery (UFCD
PDF
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
PDF
Introdução à MEAN Stack
PDF
Evolução e futuro do uso de paradigmas no JavaScript
PDF
Java script
PDF
3317 java script
PDF
Java script
PDF
Java script
PDF
JavaScript
PDF
Apostila de ext js com php e postgresql v1.1
PDF
Apostila de ext js com php e postgresql v1.2
PDF
Apostila de ext js com php e postgresql v1.3
PDF
Workshop ExtJS4
PDF
Java script
PDF
javscript para iniciantes
PPTX
Desvendando a linguagem JavaScript
Curso PHP: Básico JavaScript
Aula2
Javascript não é Java+Script (TDC Floripa 2012)
Aprender Javascript e jQuery (UFCD
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Introdução à MEAN Stack
Evolução e futuro do uso de paradigmas no JavaScript
Java script
3317 java script
Java script
Java script
JavaScript
Apostila de ext js com php e postgresql v1.1
Apostila de ext js com php e postgresql v1.2
Apostila de ext js com php e postgresql v1.3
Workshop ExtJS4
Java script
javscript para iniciantes
Desvendando a linguagem JavaScript

Mais de Eduardo Mendes (20)

PDF
AngularJS - Rotas
PDF
Angular JS - Fundamentos
PDF
Singleton - Padrão de Projeto
PDF
Layout Fluido
PDF
Web Design Responsivo
PDF
Html - Aula 4
PDF
Html - Aula 3
PDF
Introdução à Internet, Http e HTML
PDF
PDF
Jquery 2
PDF
Estimativas de Esforço - Engenharia de Software
PDF
Java web 6 JSP Expression Language Taglib parte 2
PDF
Validações no Ruby on Rails
PDF
Padrão Iterator
PDF
Padroes Template-Method (Método Gabarito)
PDF
Padrão Command
PDF
Padrão Fachada
PDF
Padrão Adapter
PDF
Web Design Responsivo
PDF
PHP básico para iniciantes
AngularJS - Rotas
Angular JS - Fundamentos
Singleton - Padrão de Projeto
Layout Fluido
Web Design Responsivo
Html - Aula 4
Html - Aula 3
Introdução à Internet, Http e HTML
Jquery 2
Estimativas de Esforço - Engenharia de Software
Java web 6 JSP Expression Language Taglib parte 2
Validações no Ruby on Rails
Padrão Iterator
Padroes Template-Method (Método Gabarito)
Padrão Command
Padrão Fachada
Padrão Adapter
Web Design Responsivo
PHP básico para iniciantes

Último (6)

DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PPTX
Curso de Windows 11 resumido na prática.pptx
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
apresentacao introducao computacao ead.pdf
PDF
Evolução em código: algoritmos genéticos com PHP
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Curso de Windows 11 resumido na prática.pptx
Dos requisitos ao código: como criar código rastreável em PHP
apresentacao introducao computacao ead.pdf
Evolução em código: algoritmos genéticos com PHP
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO

JavaScript - Introdução com Orientação a Objetos

  • 2. Eduardo Mendes ([email protected]) Sistemas de 2 50's Software Os primeiros sistemas começaram a aparecer no final da década de 40 e mais fortemente no anos 50
  • 3. Eduardo Mendes ([email protected])3 Apesar de já estarem presentes há várias décadas, pode-se dizer que só recentemente começaram a ser usados por milhões de pessoas no mundo todo 50's Software Sistemas de
  • 4. Eduardo Mendes ([email protected])4 Profissional
 Treinado Hoje Há alguns anos uma aplicação de software só era usada por profissionais treinados Hoje a maioria das pessoas interagem diretamente com uma ou mais aplicaçõess
  • 5. Eduardo Mendes ([email protected]) “ Este enorme e rápido crescimento no número de usuários de computadores não poderia ter acontecido sem o grande avanço na facilidade de uso
 e nas técnicas de interface que se seguiram” 5 (SMEETS, BONESS e BANKRAS, 2009)
  • 6. Eduardo Mendes ([email protected]) O que é riqueza? “A riqueza de um cliente é determinada pelo
 modelo de interação
 que o cliente oferece ao usuário" 6 Experiência do usuário
  • 7. Eduardo Mendes ([email protected]) O que é riqueza? Um modelo rico de interação oferece suporte para uma variedade
 de métodos de entrada,
 que responde intuitivamente
 e dentro de um prazo razoável 7
  • 8. Eduardo Mendes ([email protected]) O que é riqueza? Interação será tanto melhor 
 quanto mais próxima estiver
 de uma geração atualizada
 de aplicativos desktop 8
  • 9. Eduardo Mendes ([email protected]) 9 Aplicações Mainframe Aplicações Web RicasAplicações Cliente/Servidor Aplicações Web Experiência do Usuário Eficiência do Custo
  • 10. Internet Cientistas do CERN lançaram uma proposta para a World Wide Web (HTML) 
 Facilitou o compartilhamento de documentos de pesquisa Hipertexto + Internet 1989
  • 11. Eduardo Mendes ([email protected]) A Internet e a Web foram se espalhando e se tornando populares 11 Originalmente foi criada para que as pessoas pudessem compartilhar informações, publicando documentos, e fazer referências cruzadas a eles através de hiperlinks 90's Entretanto a qualidade das aplicações eram baixas
  • 14. Eduardo Mendes ([email protected]) acessar na web documentos
 gerados dinamicamente 14 conteúdo dinâmicoSurge a Aplicação Web
  • 15. Eduardo Mendes ([email protected]) 15 Aplicações Mainframe Aplicações Web RicasAplicações Cliente/Servidor Aplicações Web Experiência do Usuário Eficiência do Custo
  • 16. Aplicações Web Síncronas O modelo síncrono do HTTP inviabilizava uma ideia de cliente rico GARRET, 2005
  • 18. Jesse James Garrett 2005 Ajax: A New Approach to Web Applications http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications/ JavaScript
  • 22. Eduardo Mendes ([email protected]) 2. Questões sobre interface web 22
  • 23. Eduardo Mendes ([email protected]) 2. Questões sobre interface web 2.1 Modularização e Separação de interesses 2.2 A web é uma só 2.3 Progressive Enhacement 2.4 Web Design Responsivo 23
  • 24. Eduardo Mendes ([email protected]) 2.1 Modularização e Separação de Interesses 24
  • 25. Eduardo Mendes ([email protected]) Modularização "Melhor maneira de criar
 sistemas gerenciáveis” PARNAS (1972) 25
  • 26. Eduardo Mendes ([email protected]) Separation Of Concerns (SoC) Para tratar a complexidade é melhor se concentrar em um assunto de cada vez, para melhorar a compreensão sobre o sistema e melhorar sua capacidade de evolução (DIJKSTRA, 1974) 26
  • 27. Eduardo Mendes ([email protected]) 03 27 interesses Descrição do Conteúdo Apresentação
 do Conteúdo Controle do
 comportamento deste Conteúdo
  • 28. Eduardo Mendes ([email protected])28 Descrição do ConteúdoApresentação
 do Conteúdo Controle do
 comportamento deste Conteúdo
  • 29. Eduardo Mendes ([email protected])29 O que é JavaScript? LiveScript Netscape Navigator 2.0 Linguagem baseada na linguagem JAVA
  • 30. Eduardo Mendes ([email protected])30 O que é JavaScript? Não faz parte das plataformas Java Destinada para o uso em páginas Web (client-side) ou em servidores web (server-side) Front-end JavaScript é uma linguagem interpretada.
  • 31. Eduardo Mendes ([email protected])31 O que posso fazer com JavaScript? Acesso à elementos de uma página web Imagens Elementos de um formulário Links etc Manipulados ou mudados via programação
  • 32. Eduardo Mendes ([email protected])32 O que posso fazer com JavaScript? Capturar eventos Click do mouse Tecla pressionada Outros Operações baseadas nas ações do usuário.
  • 33. Eduardo Mendes ([email protected])33 Como usar JavaScript? 3 maneiras: Dentro de blocos HTML <script> ... </script> Arquivo externo importado pela página <script language=“javascript” src=“funcoes.js"></script> Dentro dos elementos HTML sensíveis a eventos <input type="text" name="nome" value="" onblur="caixaAlta(this)“ />
  • 34. Eduardo Mendes ([email protected])34 Blocos script <script language=“javascript”> ... instruções JavaScript ... </script> Podem aparecer diversas vezes no código De preferência dentro das tags <head>
  • 35. Eduardo Mendes ([email protected])35 Blocos Script <html> <head> <script language=“javascript"> function caixaAlta(obj) { obj.value = obj.value.toUpperCase(); } </script> </head> <body> <form name="main" action="#"> Nome: <input type="text" name="nome" value="“ onblur="caixaAlta(this)“ /> <br /><br /> <input type="reset" name="reset" value="Limpar“ /><br /> </form> </body> </html>
  • 36. Eduardo Mendes ([email protected])36 Arquivo Js para ser importado funcoes.js function soma(a, b) { return a + b; } function multiplicacao(a, b) { return a * b; }
  • 37. Eduardo Mendes ([email protected])37 Importando um arquivo Código de importação deve vir no <head> Atributo SRC no descritor <script> <html> <head> <script language=“javascript” src=“funcoes.js"></script> </head> <body> .... <script> resultado = soma(10, 30); document.write("<p>A soma de 5 e 6 é " + resultado + “</p>”); </script>
  • 38. Eduardo Mendes ([email protected])38 Em Elementos HTML Atributos para captura de eventos disparados Arrasto de um mouse Clique de um botão Quando ocorre um evento Um procedimento de tratamento do evento é chamado
  • 39. Eduardo Mendes ([email protected])39 Em Elementos HTML Atributos de eventos Sempre começam com o prefixo “ON” onblur, onerror, onfocus, onchange, onclick, onkeydown, onkeypress, onkeyup... Valores recebidos por esses atributos Código JavaScript
  • 40. Eduardo Mendes ([email protected])40 Em Elementos HTML <form> <input type="button“ value=“Aperte aqui“ onclick="alert(‘Botão Pressionado')“> </form> <a href="javascript:alert(‘Link acionado!’)"> link </a>
  • 42. Eduardo Mendes ([email protected]) Funções 42 function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); } Está na memória assim que o programa carrega
  • 43. Eduardo Mendes ([email protected]) Funções 43 construindo funções em tempo de execução function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); } Está na memória assim que o programa carrega var soma =
  • 44. Eduardo Mendes ([email protected]) Funções 44 construindo funções em tempo de execução function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); } Está na memória assim que o programa carrega var soma = function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); }; A função foi atribuída à variável soma
  • 45. Eduardo Mendes ([email protected]) Funções 45 construindo funções em tempo de execução function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); } Está na memória assim que o programa carrega var soma = function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); }; É preciso de um ponto e vírgula no final da sentença
  • 46. Eduardo Mendes ([email protected]) Funções 46 construindo funções em tempo de execução function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); } Está na memória assim que o programa carrega var soma = function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); }; Agora a função carrega apenas quando este código for alcançado
  • 47. Eduardo Mendes ([email protected]) Funções 47 construindo funções em tempo de execução function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); } Está na memória assim que o programa carrega var soma = function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); }; Agora a função carrega apenas quando este código for alcançado soma(3,4); 25
  • 48. Eduardo Mendes ([email protected]) Funções 48 construindo funções em tempo de execução function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); } A variável precisou de parênteses e ponto e vírgula var soma = function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); }; O nome da função é opcional, já que estamos usando uma variável que já possui um nome soma(3,4); 25
  • 49. Eduardo Mendes ([email protected]) Funções Anônimas 49 não precisam ser nomeadas já que possuem uma variável var soma = function somaDosQuadrados(x, y){ return Math.pow(x,2) + Math.pow(y,2); }; Funções Anônimas
  • 50. Eduardo Mendes ([email protected]) Funções Anônimas 50 não precisam ser nomeadas já que possuem uma variável var soma = function (x, y){ return Math.pow(x,2) + Math.pow(y,2); }; Funções Anônimas
  • 51. Eduardo Mendes ([email protected]) Funções Anônimas 51 não precisam ser nomeadas já que possuem uma variável var soma = function (x, y){ return Math.pow(x,2) + Math.pow(y,2); }; Funções Anônimas Sem nome soma(3,4); 25 Ainda precisa de parênteses e ponto e vírgula
  • 52. Eduardo Mendes ([email protected]) Curiosidade 52 var soma = function (x, y){ return x + y; } console.log(soma);
  • 53. Eduardo Mendes ([email protected]) Curiosidade 53 var soma = function (x, y){ return x + y; } console.log(soma);
  • 54. Eduardo Mendes ([email protected]) 1.1 Funções como parâmetros 54
  • 55. Eduardo Mendes ([email protected]) Funções como parâmetros 55 var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } uma variável que armazena uma função pode ser passada para outras funções
  • 56. Eduardo Mendes ([email protected]) Funções como parâmetros 56 var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); A variável mensagemFinal é passada como parâmetro para uma função existente uma variável que armazena uma função pode ser passada para outras funções
  • 57. Eduardo Mendes ([email protected]) Funções como parâmetros 57 var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); A variável mensagemFinal é passada como parâmetro para uma função existente uma variável que armazena uma função pode ser passada para outras funções function encerrarJogo(mensagem) { ... mensagem(); ... }
  • 58. Eduardo Mendes ([email protected]) Funções como parâmetros 58 var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); uma variável que armazena uma função pode ser passada para outras funções function encerrarJogo(mensagem) { ... mensagem(); ... } function encerrarJogo(mensagem) { ... mensagem(); ... }
  • 59. Eduardo Mendes ([email protected]) Funções como parâmetros 59 var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); uma variável que armazena uma função pode ser passada para outras funções function encerrarJogo(mensagem) { ... mensagem(); ... } function encerrarJogo( ) { ... mensagem(); ... }
  • 60. Eduardo Mendes ([email protected]) var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); function encerrarJogo(mensagemFinal) { ... mensagem(); ... } Funções como parâmetros 60 uma variável que armazena uma função pode ser passada para outras funções function encerrarJogo(mensagem) { ... mensagem(); ... }
  • 61. Eduardo Mendes ([email protected]) var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); function encerrarJogo(mensagemFinal) { ... mensagemFinal(); ... } Funções como parâmetros 61 uma variável que armazena uma função pode ser passada para outras funções function encerrarJogo(mensagem) { ... mensagem(); ... }
  • 62. Eduardo Mendes ([email protected]) var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); function encerrarJogo(mensagemFinal) { ... mensagemFinal(); ... } Funções como parâmetros 62 uma variável que armazena uma função pode ser passada para outras funções function encerrarJogo(mensagem) { ... mensagem(); ... }
  • 63. Eduardo Mendes ([email protected]) var mensagemFinal = function() { alert("Fim de Jogo! Obrigado por participar!"); } ... encerrarJogo(mensagemFinal); function encerrarJogo(mensagemFinal) { ... mensagemFinal(); ... } E se houvesse várias mensagens? 63 É possível ter flexibilidade com essa estrutura e escolher uma mensagem específica function encerrarJogo(mensagem) { ... mensagem(); ... }
  • 64. Eduardo Mendes ([email protected]) function encerrarJogo(mensagem) { mensagem(); } var mensagemFinal; if (vencedor) { mensagemFinal = function() { alert("Você venceu! Batata frita!"); }; } else { mensagemFinal = function() { alert("Que pena! Tente mais uma vez!"); }; } encerrarJogo(mensagemFinal); E se houvesse várias mensagens? 64 É possível ter flexibilidade com essa estrutura e escolher uma mensagem específica var vencedor = false;
  • 65. Eduardo Mendes ([email protected]) function encerrarJogo(mensagem) { mensagem(); } var mensagemFinal; if (vencedor) { mensagemFinal = function() { alert("Você venceu! Batata frita!"); }; } else { mensagemFinal = function() { alert("Que pena! Tente mais uma vez!"); }; } encerrarJogo(mensagemFinal); E se houvesse várias mensagens? 65 É possível ter flexibilidade com essa estrutura e escolher uma mensagem específica var vencedor = true;
  • 66. Eduardo Mendes ([email protected]) Utilizando funções arrays e map 66 var numeros = [2, 4, 5, 6, 7, 8, 9]; uma variável que armazena uma função pode ser passada para outras funções var resultados = numeros.map( );- outra função - o método map recebe uma função e retorna um array processado pela função 2 4 5 6 7 8 9 outro valor outro valor outro valor outro valor outro valor outro valor outro valor - outra função -
  • 67. Eduardo Mendes ([email protected]) Utilizando funções arrays e map 67 var numeros = [2, 4, 5, 6, 7, 8, 9]; Map funciona com um laço que executa sobre cada índice do array var resultados = numbers.map( );- outra função - var resultados = []; for (var i = 0; i < numeros.length; i++) { resultados[i] = algumaFuncao(numeros[i]); } o método map encapsula este processamento e o resume em uma linha de código
  • 68. Eduardo Mendes ([email protected]) Utilizando funções arrays e map 68 var numeros = [2, 4, 5, 6, 7, 8, 9]; Map funciona com um laço que executa sobre cada índice do array var resultados = numeros.map(function(celula) { return celula * 2; } ); 2 4 5 6 7 8 9 4 8 10 12 14 16 18 - função -
  • 70. Eduardo Mendes ([email protected]) Objetos em JavaScript Uma entidade independente com propriedades e tipo como em outras linguagens as propriedades são acessadas pela notação do ponto 70 variavel Objeto idade=10 variavelDoObjeto.nomeDaPropriedade o.idade
  • 71. Eduardo Mendes ([email protected]) Criando objetos 71 var carro = new Object(); carro.fabricante = "KIA"; carro.modelo = "Picanto"; carro.ano = 2012; carro["fabricante"] = "Volks"; carro["modelo"] = "Gol"; carro["ano"] = 2013; pode ser utilizado como um array associativo
  • 72. Eduardo Mendes ([email protected]) Objetos
 Literais 72 var moto = {cor: "vermelha", rodas: 4, cilindros: 4};
  • 73. Eduardo Mendes ([email protected]) Função
 Construtora 73 function Carro(fabricante, modelo, ano) { this.fabricante = fabricante; this.modelo = modelo; this.ano = ano; } var outroCarro = new Carro("Hyundai", "Tucson", 2009); var aqueleCarro = new Carro("Ford", "Fiesta", 2014);
  • 74. Eduardo Mendes ([email protected]) Métodos 74 var moto = {cor: "vermelha", rodas: 4, cilindros: 4}; Como foi visto os objetos são formados por propriedades
  • 75. Eduardo Mendes ([email protected]) Métodos 75 variavelDoObjeto.nomeDoMetodo = nome_funcao; São funções associadas a um objeto… ou é uma propriedade de um objeto
 que é uma função um método é uma função atribuída
 a uma propriedade do objeto var meuObjeto = { meuMetodo: function(params) { // algum comportamento } };
  • 76. Eduardo Mendes ([email protected])76 Métodos function Moto(cor, rodas, cilindros) { this.cor = cor; this.rodas = rodas; this.cilindros = cilindros; } function exibirDados() { var resultado = "Dados da moto: cor - " + this.cor + ", rodas: " + this.rodas + ", cilindros: " + this.cilindros; alert(resultado); } this.exibirDados = exibirDados;