SlideShare uma empresa Scribd logo
Ramon Felipe de OliveiraRamon Felipe de Oliveira
Page  2
Origens
Javascript surgiu em 1995 e
quando lançado se chamava
LiveScript
BrendanEich
Page  3
Numa época de conexões
discadas, seu foco era outro:
Evitar chamadas
desnecessárias ao servidor.
Origens
Page  4
Novo cenário
De doze linhas, para duzentas.
Esta questão
pode ser vista
no ie6
hoje.
Page  5
Novo cenário
O cenário mudou drasticamente...
... mas o Javascript mudou muito pouco.
Browsers começaram a oferecer
suporte
para Html dinâmico e surgiu o DOM.
Page  6
DOM
O Document Object Model (DOM) é uma interface de programação
para documentos HTML e XML.
Ele provê uma representação estruturada do documento e define um
meio pelo qual a estrutura pode ser acessada por programas
permitindo-os alterar a estrutura do documento, estilo e conteúdo
Essencialmente ele conecta páginas de internet a scripts ou
linguagens de programação.
Uma página de internet é um documento.
Page  7
Características
Pequena
Interpretada (compilada)
Sofisticada
Linguagem funcional
Linguagem cliente
Baixa tipagem
Objetos são “containers”
Herança por protótipos
Page  8
Tipos principais
Page  9
Typeof
Page  10
var
Page  11
Objeto em JS
Page  12
Criando um objeto
Page  13
Acessando membros
Page  14
Sintaxe Literal
var obj = {
nome: “Fusca",
detalhes: {
cor: “vermelho",
ano: 1988
}
}
Page  15
Functions
Page  16
Functions
Page  17
Método
Page  18
Função add
function add(x, y) {
var total = x + y;
return total;
}
Page  19
Funções
Page  20
function add() {
var soma = 0;
for (var i = 0, j = arguments.length; i < j; i++) {
soma += arguments[i];
}
return soma;
}
Page  21
Funções anônimas
var add = function() {
var soma = 0;
for (var i = 0, j = arguments.length; i < j; i++) {
soma += arguments[i];
}
return soma;
}
Pode se usar recursão utilizando a função
implícita arguments.callee.
Page  22
Herança por Protótipo
Page  23
Herança por Protótipo
Page  24
Herança por Protótipo
Page  25
Problema
Page  26
function criarPessoa(nome, sobrenome) {
return {
nome: nome,
sobrenome: sobrenome
}
}
function nomeCompleto(pessoa) {
return pessoa.nome + ‘ ‘ + pessoa.sobrenome;
}
function nomeCompletoInvertido(pessoa) {
return pessoa.sobrenome + ', ' + pessoa.nome;
}
Solução 1
Page  27
> p = criarPessoa(“João", “Silva");
> nomeCompleto(p) João Silva
> nomeCompletoInvertido(p) Silva, João
Apesar de funcionar, não é uma
solução interessante.
Provavelmente, logo existirá dezenas
de funções no global namespace.
Page  28
function criarPessoa(nome, sobrenome) {
return {
nome: nome,
sobrenome : sobrenome,
nomeCompleto: function() {
return pessoa.nome + ‘ ‘ + pessoa.sobrenome;
},
nomeCompletoInvertido: function() {
return pessoa.sobrenome + ', ' + pessoa.nome;
}
}
}
Solução 2
Page  29
> s = criarPessoa(“João", “Silva")
> s. nomeCompleto() João Silva
> s. nomeCompletoInvertido() Silva, João
Page  30
Solução 3
function Pessoa(nome, sobrenome) {
this.nome = nome;
this.sobrenome = sobrenome;
}
Pessoa.prototype.nomeCompleto = function() {
return this.nome+ ' ' + this.sobrenome;
}
Pessoa.prototype.nomeCompletoInverso = function() {
return this.sobrenome + ', ' + this.nome;
}
Page  31
Prototype
Page  32
Funções Internas
Page  33
Closures
function realizaSoma(a) {
return function(b) {
return a + b;
}
}
x = realizaSoma(5);
y = realizaSoma(20);
x(6) ? y(7) ?
Page  34
The old-school way
Page  35
Module Pattern
Page  36
Revealing Module Pattern

Mais conteúdo relacionado

PPT
Javascript
PDF
Revista programar php -iniciação
PDF
PHP: Linguagem + Mysql + MVC + AJAX
PDF
Linguagens de programação - Go
ODP
Curso Linguagem de Programação I - PHP Básico
PDF
Plinio Balduino: JavaScript Funcional
ODP
Groovy para javeiros - Migração Painless
PDF
Programação Web com PHP 7.x
Javascript
Revista programar php -iniciação
PHP: Linguagem + Mysql + MVC + AJAX
Linguagens de programação - Go
Curso Linguagem de Programação I - PHP Básico
Plinio Balduino: JavaScript Funcional
Groovy para javeiros - Migração Painless
Programação Web com PHP 7.x

Destaque (8)

PPT
J query 1
PPT
Tdc2010 web
PPTX
Linguagem da programação
PPT
Scripting languages
PDF
Python para iniciantes
PDF
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13
PDF
Learn BEM: CSS Naming Convention
PDF
SEO: Getting Personal
J query 1
Tdc2010 web
Linguagem da programação
Scripting languages
Python para iniciantes
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13
Learn BEM: CSS Naming Convention
SEO: Getting Personal
Anúncio

Semelhante a Javascript semana computação (20)

PDF
ODIG - Javascript, DOM Elements e jQuery
PDF
Grails parte 1 - introdução
PDF
Introdução à programação javascript
PDF
JavaScript - A Linguagem
PPT
PHP GERAL
PDF
Rails - EXATEC2009
PPT
Desenvolvimento Agil Com Doctrine Orm
PPTX
Aula 12 funcoes - Programação 1
PPTX
Algoritmos e Estrutura de Dados - Aula 03
PPT
Código limpo
PDF
Aplicacoes Rapidas Para Web Com Django
PDF
javascript_funcional.pdf
PPT
Tendências do Mercado de Internet
PPTX
Desenvolvendo com Silverlight para WP7 Mango [Update]
PPT
Floggy-GUJavaSC-2008-09-20
PPTX
PDF
Ruby, Rails e Diversão (Campus Party Brasil 2009)
PDF
Construindo portlets para IBM WebSphere Portal – Parte 2
PDF
Javascript Recuperando Dados De Formularios
ODIG - Javascript, DOM Elements e jQuery
Grails parte 1 - introdução
Introdução à programação javascript
JavaScript - A Linguagem
PHP GERAL
Rails - EXATEC2009
Desenvolvimento Agil Com Doctrine Orm
Aula 12 funcoes - Programação 1
Algoritmos e Estrutura de Dados - Aula 03
Código limpo
Aplicacoes Rapidas Para Web Com Django
javascript_funcional.pdf
Tendências do Mercado de Internet
Desenvolvendo com Silverlight para WP7 Mango [Update]
Floggy-GUJavaSC-2008-09-20
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Construindo portlets para IBM WebSphere Portal – Parte 2
Javascript Recuperando Dados De Formularios
Anúncio

Último (16)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
COBITxITIL-Entenda as diferença em uso governança TI
Arquitetura de computadores - Memórias Secundárias
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Processos na gestão de transportes, TM100 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14

Javascript semana computação

Notas do Editor

  • #3: Para o usuário, javascript já ajudava muito ao evitar chamadas desnecessários ao servidor, numa época de conexões discadas