SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
• Histórico e Conceito.
• Sintaxe e Estrutura da Linguagem.
• Associação com HTML:
– <script type=“text/javascript”>
• Objetos da Linguagem:
– String, Math, RegExp
• Funções Internas do JavaScript.
• Maneira implementada pelos navegadores
para manipulação dinâmica do HTML:
– DOM
• Pode-se manipular as CSS com JavaScript
– Propriedade style
• É possível manipular requisições:
– Ajax
• Frameworks bem desenvolvidas e práticas.
• Desenvolvida por Bredan Eich (1995) quando
trabalhava na Netscape.
– Nome inicial era: LiveScript.
– Versão atual: 1.8.5
• Derivada da ECMAScript:
– Linguagem derivada da ECMA.
• Padrão internacional.
• Veja o Apêndice “Apêndice - Ecma-262.pdf”.
• Existem outras implementações:
– JScript da Microsoft: pouco usada.
• O nome mudou: LiveScript para JavaScript
• Porque?
– Quando do navegador Netscape foi lançado
(1995) com o suporte a Applets da linguagem
Java, numa jogada de marketing, mudaram o
nome para popularizar a linguagem.
• Consequência:
– Consolidação errônea de que JavaScript é uma
linguagem derivada da linguagem Java.
• Interpretada essescialemente pelo navegador
e em alguns casos pelo servidor.
– Foco do estudo: client-side.
• Tipagem Dinâmica.
• Case Sensitive.
• Baseada em objetos
– Herança baseada em protótipos
• Avaliação em tempo de execução
Foco: JavaScript não obstrutivo
• Tag <script>, para associação e incorporação
de códigos JavaScript
• Geralmente filha de <head> com os atributos:
– type: geralmente “text/javascript”.
– scr: localização do script.
– charset: opcional, pode ser UTF-8, ou ISO-8859-1
– async: para scripts executados assincronicamente.
<script type=“text/javascript” src=“dir/arquivo.js”></script>
<script type=“text/javascript”>
var nomes = [‘Zé’, ‘Zina’, ‘Jão’];
</script>
• Caso o navegador não tenha suporte para
JavaScript, ou ele esteja desativado:
– Utiliza-se a tag <noscript>
– Mensagem informando que os scripts não estão
habilitados.
– É interessante utilizar. Mas lembre-se é melhor
ainda se o JavaScript não interferir na navegação:
não obstrutivo.
<script type=“text/javascript”>
var nomes = [‘Zé’, ‘Zina’, ‘Jão’];
</script>
<noscript>
Seu navegador não tem suporte para JavaScript.
</noscript>
Regras para nomear
• Nome de qualquer variável, constante, função,
objeto, propriedade, método ou coleção:
– O primeiro caráter deve ser uma letra ou uma
underscrore “_”.
– Os caracteres seguintes podem ser letras,
números ou underscore.
– Não deve haver espaço entre os caracteres.
– O nome não deve ser igual a uma palavra
reservada da linguagem.
Trabalhando com valores
var nome;
nome = “Zé”;
nome = 18;
Não declarei tipo e alterei
o tipo de dado da variável:
Tipagem Dinâmica!
const idade = 18;
Não declarei tipo e não
poderei mais alterar o
valor de idade.
• Conjunto de valores associados em uma única
variável.
var nomes = new Array(“Jão”, “Zé”, “Creuza”);
var nomes = [“Jão”, “Zé”, “Creuza”];
var nomes[“homem”] = [“Jão”, “Zé”]
Aritméticos, lógicos e comparação
• Tipo de Operadores:
– Aritméticos.
– Lógicos e Relacionais.
– Bit-a-Bit ou Bitwise.
– Atribuição Composta.
– Outros operadores.
• Ver apêndice: “Operadores JavaScript.pdf”
Comandos para Programar
// Comentário de uma linha
/* Comentário de
múltiplas linhas
*/
/** Formato de comentário
* recomendado para métodos e
* propriedades de Objetos
**/
if(nome == “Zé”){
// bloco de instruções
} else
// else “opcional” switch(nome){
case ‘Zé’:
// bloco de instruções.
break;
case ‘Jão’:
// bloco de instruções.
break;
default:
// não caiu e nenhum case.
break;
}
for(var i=0; i<10; i++) {
// instruções.
}
for(argumento in objeto){
//instrução;
}
while(i != 10) {
i++;
}
do {
i++;
} while(i != 10);
function getNome(){
return this.nome;
}
function setNome(nome = ‘Zé’) {
this.nome = nome;
}
try {
// tetando executar uma instrução
} catch(Exception e) {
alert(e.getMessage());
// tento outra instrução.
} finally {
alert(‘Deu tudo errado!’);
}
if(valor == 0) {
throw new Exception(“Não pode ser Zero!”);
}
Muito mais do que você Pensa!
• Objetos podem ser divididos em quatro
grupos:
– Intrínsecos.
– Criados pelo usuário.
– Objetos da entidade executora (ex: Navegador).
– Objetos Embutidos
• Encapsulamento
• Herança
• Poliformismo
• Interface de Objetos:
– Classes: C++, Java, PHP
– Protótipos: JavaScript
Considere um objeto Animal.
Gato é um animal, logo Gato
pode herdar funcionalides de
Animal. Gato pode modificar
essas funcionalidades –
poliformismo – e
implementar novas em tempo
de execução: protótipos!
function Gato (nome, raca) {
this.nome = nome;
this.raca = raca;
this.brincar = function() {}
this.comer = function() {}
}
var Bolota = new
Gato(‘Bolota’, ‘Persa’);
Bolota.brincar();
var Bolota
= {}
Objetos intrínsecos da linguagem
• Array
• Boolean
• Date
• Error
• Function
• Global
• Math
• Number
• Objetct
• RegExp
• String
www.tiago.blog.br
tiago@tiago.blog.br

Contenu connexe

Tendances

T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
Carlos Santos
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial Ii
Mateus Ramos Pereira
 

Tendances (20)

Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend Framework
 
Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Ajax (Asynchronous Javascript And Xml)
Ajax (Asynchronous Javascript And Xml)Ajax (Asynchronous Javascript And Xml)
Ajax (Asynchronous Javascript And Xml)
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
 
Apresentação VRaptor 3
Apresentação VRaptor 3Apresentação VRaptor 3
Apresentação VRaptor 3
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial Ii
 
TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....
TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....
TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....
 
Case de integração de user parameter e notes
Case de integração de user parameter e notesCase de integração de user parameter e notes
Case de integração de user parameter e notes
 
Treinamento ajax modulo javascript
Treinamento ajax   modulo javascriptTreinamento ajax   modulo javascript
Treinamento ajax modulo javascript
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Java web
Java webJava web
Java web
 
Vim
VimVim
Vim
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
 

Similaire à Curso JavaScript - Aula de Introdução como Programar

LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
Carlos Santos
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
Wesley Lemos
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
elliando dias
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
Carlos Santos
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
Denis L Presciliano
 
XML Free Programming - Brazil
XML Free Programming - BrazilXML Free Programming - Brazil
XML Free Programming - Brazil
Stephen Chin
 

Similaire à Curso JavaScript - Aula de Introdução como Programar (20)

LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Javascript no SAPO e libsapojs
Javascript no SAPO e libsapojsJavascript no SAPO e libsapojs
Javascript no SAPO e libsapojs
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMC
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
performance em jQuery apps
performance em jQuery appsperformance em jQuery apps
performance em jQuery apps
 
Aula 05 - Java Script Básico
Aula 05 -  Java Script BásicoAula 05 -  Java Script Básico
Aula 05 - Java Script Básico
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Um Mundo Java Sem XML
Um Mundo Java Sem XMLUm Mundo Java Sem XML
Um Mundo Java Sem XML
 
XML Free Programming - Brazil
XML Free Programming - BrazilXML Free Programming - Brazil
XML Free Programming - Brazil
 

Plus de Tiago Antônio da Silva

Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de RegiõesDefesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Tiago Antônio da Silva
 

Plus de Tiago Antônio da Silva (20)

SIF - Sistemas de Informacao e Regressao Linear
SIF - Sistemas de Informacao e Regressao LinearSIF - Sistemas de Informacao e Regressao Linear
SIF - Sistemas de Informacao e Regressao Linear
 
Manual de Sovrevivência do Aluno
Manual de Sovrevivência do AlunoManual de Sovrevivência do Aluno
Manual de Sovrevivência do Aluno
 
Git e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código Fácil
 
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestradoCaminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
 
Análise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no BalsamiqAnálise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
 
Redes - Camada de Enlace de Dados
Redes - Camada de Enlace de DadosRedes - Camada de Enlace de Dados
Redes - Camada de Enlace de Dados
 
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira InterfaceXamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
Xamarin - Aula 2.1 - AppDolares - Criando a Primeira Interface
 
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin FormsXamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
Xamarin - Aula 2 - Criando o Primeiro Projeto com Xamarin Forms
 
O que são Redes de Computadores
O que são Redes de ComputadoresO que são Redes de Computadores
O que são Redes de Computadores
 
Redes - Camada Física e Meios de Transmissão
Redes - Camada Física e Meios de TransmissãoRedes - Camada Física e Meios de Transmissão
Redes - Camada Física e Meios de Transmissão
 
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de RegiõesDefesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de Regiões
 
Folhas de Estilo XSL
Folhas de Estilo XSLFolhas de Estilo XSL
Folhas de Estilo XSL
 
Divisão de Imagens 3D com CloudCompare
Divisão de Imagens 3D com CloudCompareDivisão de Imagens 3D com CloudCompare
Divisão de Imagens 3D com CloudCompare
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicos
 
Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e Ajax
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
 
Curso HTML 5 - Construindo um Layout
Curso HTML 5 - Construindo um LayoutCurso HTML 5 - Construindo um Layout
Curso HTML 5 - Construindo um Layout
 
Curso HTML 5 - Aula Inicial
Curso HTML 5 - Aula InicialCurso HTML 5 - Aula Inicial
Curso HTML 5 - Aula Inicial
 
Aula C#: Acesso ao MySQL usando AppConfig
Aula C#: Acesso ao MySQL usando AppConfigAula C#: Acesso ao MySQL usando AppConfig
Aula C#: Acesso ao MySQL usando AppConfig
 
Aula C#: Abastecendo Combobox com Dados do MySQL
Aula C#: Abastecendo Combobox com Dados do MySQLAula C#: Abastecendo Combobox com Dados do MySQL
Aula C#: Abastecendo Combobox com Dados do MySQL
 

Curso JavaScript - Aula de Introdução como Programar

  • 1.
  • 2. • Histórico e Conceito. • Sintaxe e Estrutura da Linguagem. • Associação com HTML: – <script type=“text/javascript”> • Objetos da Linguagem: – String, Math, RegExp • Funções Internas do JavaScript.
  • 3. • Maneira implementada pelos navegadores para manipulação dinâmica do HTML: – DOM • Pode-se manipular as CSS com JavaScript – Propriedade style • É possível manipular requisições: – Ajax • Frameworks bem desenvolvidas e práticas.
  • 4. • Desenvolvida por Bredan Eich (1995) quando trabalhava na Netscape. – Nome inicial era: LiveScript. – Versão atual: 1.8.5 • Derivada da ECMAScript: – Linguagem derivada da ECMA. • Padrão internacional. • Veja o Apêndice “Apêndice - Ecma-262.pdf”. • Existem outras implementações: – JScript da Microsoft: pouco usada.
  • 5. • O nome mudou: LiveScript para JavaScript • Porque? – Quando do navegador Netscape foi lançado (1995) com o suporte a Applets da linguagem Java, numa jogada de marketing, mudaram o nome para popularizar a linguagem. • Consequência: – Consolidação errônea de que JavaScript é uma linguagem derivada da linguagem Java.
  • 6. • Interpretada essescialemente pelo navegador e em alguns casos pelo servidor. – Foco do estudo: client-side. • Tipagem Dinâmica. • Case Sensitive. • Baseada em objetos – Herança baseada em protótipos • Avaliação em tempo de execução
  • 8. • Tag <script>, para associação e incorporação de códigos JavaScript • Geralmente filha de <head> com os atributos: – type: geralmente “text/javascript”. – scr: localização do script. – charset: opcional, pode ser UTF-8, ou ISO-8859-1 – async: para scripts executados assincronicamente.
  • 9. <script type=“text/javascript” src=“dir/arquivo.js”></script> <script type=“text/javascript”> var nomes = [‘Zé’, ‘Zina’, ‘Jão’]; </script>
  • 10. • Caso o navegador não tenha suporte para JavaScript, ou ele esteja desativado: – Utiliza-se a tag <noscript> – Mensagem informando que os scripts não estão habilitados. – É interessante utilizar. Mas lembre-se é melhor ainda se o JavaScript não interferir na navegação: não obstrutivo.
  • 11. <script type=“text/javascript”> var nomes = [‘Zé’, ‘Zina’, ‘Jão’]; </script> <noscript> Seu navegador não tem suporte para JavaScript. </noscript>
  • 13. • Nome de qualquer variável, constante, função, objeto, propriedade, método ou coleção: – O primeiro caráter deve ser uma letra ou uma underscrore “_”. – Os caracteres seguintes podem ser letras, números ou underscore. – Não deve haver espaço entre os caracteres. – O nome não deve ser igual a uma palavra reservada da linguagem.
  • 15. var nome; nome = “Zé”; nome = 18; Não declarei tipo e alterei o tipo de dado da variável: Tipagem Dinâmica!
  • 16. const idade = 18; Não declarei tipo e não poderei mais alterar o valor de idade.
  • 17. • Conjunto de valores associados em uma única variável. var nomes = new Array(“Jão”, “Zé”, “Creuza”); var nomes = [“Jão”, “Zé”, “Creuza”]; var nomes[“homem”] = [“Jão”, “Zé”]
  • 18. Aritméticos, lógicos e comparação
  • 19. • Tipo de Operadores: – Aritméticos. – Lógicos e Relacionais. – Bit-a-Bit ou Bitwise. – Atribuição Composta. – Outros operadores. • Ver apêndice: “Operadores JavaScript.pdf”
  • 21. // Comentário de uma linha /* Comentário de múltiplas linhas */ /** Formato de comentário * recomendado para métodos e * propriedades de Objetos **/
  • 22. if(nome == “Zé”){ // bloco de instruções } else // else “opcional” switch(nome){ case ‘Zé’: // bloco de instruções. break; case ‘Jão’: // bloco de instruções. break; default: // não caiu e nenhum case. break; }
  • 23. for(var i=0; i<10; i++) { // instruções. } for(argumento in objeto){ //instrução; } while(i != 10) { i++; } do { i++; } while(i != 10);
  • 24. function getNome(){ return this.nome; } function setNome(nome = ‘Zé’) { this.nome = nome; }
  • 25. try { // tetando executar uma instrução } catch(Exception e) { alert(e.getMessage()); // tento outra instrução. } finally { alert(‘Deu tudo errado!’); } if(valor == 0) { throw new Exception(“Não pode ser Zero!”); }
  • 26. Muito mais do que você Pensa!
  • 27. • Objetos podem ser divididos em quatro grupos: – Intrínsecos. – Criados pelo usuário. – Objetos da entidade executora (ex: Navegador). – Objetos Embutidos
  • 28. • Encapsulamento • Herança • Poliformismo • Interface de Objetos: – Classes: C++, Java, PHP – Protótipos: JavaScript Considere um objeto Animal. Gato é um animal, logo Gato pode herdar funcionalides de Animal. Gato pode modificar essas funcionalidades – poliformismo – e implementar novas em tempo de execução: protótipos!
  • 29. function Gato (nome, raca) { this.nome = nome; this.raca = raca; this.brincar = function() {} this.comer = function() {} } var Bolota = new Gato(‘Bolota’, ‘Persa’); Bolota.brincar(); var Bolota = {}
  • 31. • Array • Boolean • Date • Error • Function • Global • Math • Number • Objetct • RegExp • String