SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Sapo Sessions #2



JavaScript for Beginners
 Sintaxe, boas práticas, metodologias e outras
              informações úteis.




                                        Pedro Eugénio
                                        peugenio@co.sapo.pt
                                        http://igeni.us
Sapo Sessions #2: Javascript for Beginners



                     Sequência


1. Bem-vindo ao mundo Javascript
   biografia, javascript is not java!, hello world!




2. O básico
   variáveis, operadores, estruturas de controle, funções, objectos
   e eventos




3. O passo seguinte
   DOM
Sapo Sessions #2: Javascript for Beginners



1. Bem-vindo


   Com que objectivo?

     Efeitos

     Animações

     Manipulação

     Validação

     RIA
Sapo Sessions #2: Javascript for Beginners



1.1 História do Javascript    ECMA-262: é uma especificação
                              que serve de base para o
                              javascript e jscript




                              }
                              ECMAScript: é a linguagem de
                              scripts padronizada pelo
                              ECMA-262

                              Tanto a tecnologia JavaScript
   1990 - Inicio da mudança   quanto a JScript são compatíveis
                              com ECMAScript, porém cada um
                              disponibiliza recursos adicionais
     Netscape - Livescript    não descritos na especificação
                              ECMA.


     IE - JScript
                                    Javascript
   1996 - ECMA

     ECMAScript

     ECMA-262
Sapo Sessions #2: Javascript for Beginners



1.2 Javascript is not Java!!!


   Whhhhhhhhhaaaaaaaaaatttt?

     Só a sintaxe é semelhante!

   Duas companhias diferentes

     Netscape e Sun

   Java precisa de uma JVM

     Javascript corre directamente no browser
Sapo Sessions #2: Javascript for Beginners



1.3 Hello World


  <!DOCTYPE html PUBLIC quot;-/    /W3C/  /DTD XHTML 1.0 Transitional/ /ENquot;
    quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;>
  <html lang=quot;ptquot;>
  <head>
  <title>Sapo Sessions - JavaScript</title>
  <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=utf-8quot; />
  <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/style.cssquot; media=quot;screenquot; />
  </head>
  <body onload=quot;alert('Hello World!')quot;>
  <h1>Sapo Sessions: Javascript for Beginners</h1>
  <h2>Hello World!</h2>
  </body>
  </html>
Sapo Sessions #2: Javascript for Beginners



1.3 Hello World



   <body onload=”alert(‘Hello World!’);”>

   body onload=”DON’T”

     HTML e código Javascript juntos porquê?

   A forma correcta

     script src=”helloWorld.js”
Sapo Sessions #2: Javascript for Beginners



                     Sequência


1. Bemvindo ao mundo Javascript
   biografia, javascript is not java!, hello world!




2. O básico
   variáveis, operadores, estruturas de controle, funções, objectos
   e eventos




3. O passo seguinte
   DOM
Sapo Sessions #2: Javascript for Beginners



2. O básico



   Variáveis e Tipos

   Operadores

   Estruturas de controle

   Funções e Objectos

   Eventos
Sapo Sessions #2: Javascript for Beginners



2.1 Variáveis e Tipos




   As variáveis em javascript não têm tipo fixo

     Qualquer valor pode ser guardado numa
     variável

     typeof variavel diz-nos o tipo da variável
Sapo Sessions #2: Javascript for Beginners



2.1.1 Declaração de variáveis




   A visibilidade de uma variável depende da sua
   declaração

     var teste = “ola”; / variável local
                         /

     teste = “ola”; / variável global
                     /
Sapo Sessions #2: Javascript for Beginners



2.1.2 Convenções



   Maiusculas, minusculas, “_” e “$”

   teste e Teste são duas variáveis diferentes

   Não se podem usar palavras reservadas

     http://javascript.about.com/library/
     blreserved.htm
Sapo Sessions #2: Javascript for Beginners



2.1.3 Tipos Primitivos




   São tratados e passados como valores

   Alguns permitem usar métodos

     quot;testequot;.toUpperCase();
Sapo Sessions #2: Javascript for Beginners



2.1.3.1 Boolean




   Dois valores possíveis

     var verdade = true;

     var falso     = false;
Sapo Sessions #2: Javascript for Beginners



2.1.3.2 Numeric



   Pode-se usar variáveis do tipo Float ou Integer,
   mas são sempre tratadas como sendo do tipo
   Numeric

     var x = 10;

     var y = 25.3;
Sapo Sessions #2: Javascript for Beginners



2.1.3.3 String




   Strings e caracteres são ambas strings

     var nome = “Pedro”;

     var letra = “c”;
Sapo Sessions #2: Javascript for Beginners



2.1.4 Tipos Complexos




   Uma variável do tipo complexo é um Objecto

   É sempre passado por referência
Sapo Sessions #2: Javascript for Beginners



2.1.4.1 Arrays


   Um Array é uma lista de elementos

   Podem conter todo e qualquer tipo de valores

     var lista = [0,”teste”,false];

     var lista = new Array( 0 , “teste” , false );

     lista[1] = ?

        “teste”
Sapo Sessions #2: Javascript for Beginners



2.1.4.2 Objectos



   var objecto = new Object();

     objecto.nome = “O meu objecto”;

     objecto.total = 20;

     objecto.init = function () { alert(“init”); }
Sapo Sessions #2: Javascript for Beginners



2.2 Operadores



   var total = 1 + 1;

   total += 1;

   total -= 1;

   total == 1;

   total === String(1);
Sapo Sessions #2: Javascript for Beginners



2.2.1 Aritmética




   somar, subtrair, multiplicar , dividir , resto da
   divisão

   +, -, * , / , %
Sapo Sessions #2: Javascript for Beginners



2.2.1 Aritmética: “+”



   O operador “+” pode ser usado em três
   situações diferentes:

     concatenação de strings

     adição

     converter strings para números            Não é boa prática!!!
                                               É preferível usar o Object
                                               Number: Number(a) para
                                               converter de string para
                                               número
Sapo Sessions #2: Javascript for Beginners



2.2.2 Bitwise

   &, |, ^, ~, >>, <<, e >>>

   Tratam os argumentos como sendo binário e
   efectuam a operação especifica de seguida

      &, |, ^ efectuam as operações de: and, or e
      xor em cada bit individual

      ~ inverte todos os bits de um inteiro

      << e >> movem os bits assim como >>> mas
      este último não mantém o sinal da operação
Sapo Sessions #2: Javascript for Beginners



2.2.3 Assignment



     =, +=, -=, /=, %=

     Atribuem um valor a uma variável

       x = 10;

     Pode apenas alterar a referência ao objecto

       x = umaFuncao;
Sapo Sessions #2: Javascript for Beginners



2.2.4 Incrementadores

   ++ e --

   Icrementam ou decrementam o valor de uma
   variável

     x++ ou x--

     É o mesmo que dizer:

       Pega no valor de x e incrementa-lhe 1

       Pega no valor de x e decrementa-lhe 1
Sapo Sessions #2: Javascript for Beginners



2.2.5 Comparação



    ==, !=, >, >=, <, <=, ===, !==

    Servem para comparar variáveis

       Se contêm, ou não, o mesmo valor

       Se o valor de uma é maior ou menor

       Se o valor e o tipo são iguais/diferentes
Sapo Sessions #2: Javascript for Beginners



2.2.6 Lógicos



   &&, || e !

   Se a e (&&) b então...

   Se a ou (||) b então...

   Se não a (!a) então...
Sapo Sessions #2: Javascript for Beginners



2.2.7 O Operador: quot;? :quot;




   É útil para substituir longas linhas de
   programação if/then/else

     return ( a && b ) ? a : b
Sapo Sessions #2: Javascript for Beginners



2.3 Estruturas de controle



     Controlam a execução do código

     Decidem se o pedaço de código é executado
     ou não

     Permitem a execução repetida de pedaços
     de código
Sapo Sessions #2: Javascript for Beginners



2.3.1 If


  if( a == b ) {
    alert( “a tem o mesmo valor que b” );
  }


   if( a == b ) {
     alert( “a tem o mesmo valor que b” );
   } else {
     alert( “não têm o mesmo valor” );
   }
Sapo Sessions #2: Javascript for Beginners



2.3.2 While



   while( x < 10 )
   {
     alert( “estou-me a repetir” );
     x++; / para podermos parar o ciclo
            /
   }
Sapo Sessions #2: Javascript for Beginners



2.3.3 Do...While...




     do {
       alert( “aqui vou eu outra vez” );
       c += 1;
     } while( c < 10 );
Sapo Sessions #2: Javascript for Beginners



2.3.4 For




     for( var c = 0; c < 10; c++ )
     {
       alert( “vai vai vai!!!” );
     }
Sapo Sessions #2: Javascript for Beginners



2.3.5 Switch


    switch( option )
    {
      case quot;femeaquot; : alert( quot;Fquot; ); break;
      case quot;machoquot; : alert( quot;Mquot; ); break;
    }
Sapo Sessions #2: Javascript for Beginners



2.3.5 Switch


    switch( option )
    {
      case quot;femeaquot; : alert( quot;Fquot; ); break;
      case quot;machoquot; : alert( quot;Mquot; ); break;
    }




                                !
                 E se não for
                  macho ou
                    femea?
Sapo Sessions #2: Javascript for Beginners



2.3.5 Switch

    switch( option )
    {
      case quot;femeaquot; : alert( quot;Fquot; ); break;
      case quot;machoquot; : alert( quot;Mquot; ); break;
      default: alert( “outro” ); break;
    }
Sapo Sessions #2: Javascript for Beginners



2.4 Funções e Objectos

     Funções permitem partir o código em
     diferentes partes

     Objectos permitem estruturar o código de
     forma modular

               var myObj = new Object();

               myObj.nome = ‘Pedro’;

          ou

               var myObj = { nome: ‘Pedro’ };
Sapo Sessions #2: Javascript for Beginners



2.4.1 Funções

   function helloWorld () { }

     Uma função

   var helloWorld = function () { }

     Uma função que se parece com o objecto
     que é de qualquer forma

   elem.onclick = function () { }

     Uma função anónima
Sapo Sessions #2: Javascript for Beginners



2.5 Eventos


   Um evento ocorre quando acontece algo na
   página do browser

     document loading

     mouse click

     mouse over

     ...
Sapo Sessions #2: Javascript for Beginners



                     Sequência


1. Bemvindo ao mundo Javascript
   biografia, javascript is not java!, hello world!




2. O básico
   variáveis, operadores, estruturas de controle, funções, objectos
   e eventos




3. O passo seguinte
   DOM
Sapo Sessions #2: Javascript for Beginners



3. O passo seguinte



   Document Object Model (DOM)

   Exemplo do uso de javascript numa ferramenta
   poderosa

   Manipulação da estrutura HTML sem
   necessidade de fazer reload à página
Sapo Sessions #2: Javascript for Beginners



3.1 DOM
Sapo Sessions #2: Javascript for Beginners



3.1.1 Introdução




   Manipulação da estrutura HTML

   Alteração/Criação/Remoção de elementos

   Alteração do estilo de um elemento
Sapo Sessions #2: Javascript for Beginners



3.1.2 Pesquisar elemento



   Quero o elemento com id “eid”

     document.getElementById(“eid”);

   Quero todos os links da página

     document.getElementsByTagName(“a”);
Sapo Sessions #2: Javascript for Beginners



3.1.3 Alterar elemento




   Quero que o elemento com id igual a “caixa” tenha
   o valor “teste”

     var caixa = document.getElementById( ‘caixa’ );

     caixa.value = “teste”;
Sapo Sessions #2: Javascript for Beginners



3.1.4 Adicionar elemento



   Quero criar um novo link na página

     var oLink = document.createElement(“a”);

     oLink.innerHTML = “mais um link”;

     oLink.href = “http://www.sapo.pt”;

     document.body.appendChild(oLink);
Sapo Sessions #2: Javascript for Beginners



3.1.5 Alterar o estilo do elemento




   Quero que a página agora fique com um
   background negro

     document.body.style.backgroundColor =
     “black”;
Sapo Sessions #2: Javascript for Beginners



3.1.6 Remover elemento




   Quero remover da página o elemento “elem”

     elem.parentNode.removeChild(elem);
Sapo Sessions #2: Javascript for Beginners



4. Aplicação: Modal Window
Sapo Sessions #2: Javascript for Beginners



Perguntas?



   Pedro Eugénio

     email: peugenio@co.sapo.pt

     messenger: voxmachina@sapo.pt

     web: igeni.us
Sapo Sessions #2: Javascript for Beginners



Recursos




   Javascript: http://www.w3schools.com/JS/

   FireBug: http://getfirebug.com/

   DOM: http://www.w3.org/DOM/
Sapo Sessions #2: Javascript for Beginners




setTimeout( “endPresentation();” , 3000 );

Mais conteúdo relacionado

Mais procurados

Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyDiego Rubin
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptRogério Moraes de Carvalho
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sérioLuciano Ramalho
 
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 Railsismaelstahelin
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - ComparandoWesley Lemos
 
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 RailsLucas Caton
 
Como Construir um Compilador cap-1
Como Construir um Compilador cap-1Como Construir um Compilador cap-1
Como Construir um Compilador cap-1Maellson Marques
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHPJuan Maiz
 
JavaScript "for dummies"
JavaScript "for dummies"JavaScript "for dummies"
JavaScript "for dummies"Murilo Beltrame
 
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 UVAThiago Cifani
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Leonardo Melo Santos
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?Tales Andrade
 

Mais procurados (19)

Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
 
Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 
Boas Práticas em jQuery
Boas Práticas em jQueryBoas Práticas em jQuery
Boas Práticas em jQuery
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sério
 
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
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
 
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
 
Como Construir um Compilador cap-1
Como Construir um Compilador cap-1Como Construir um Compilador cap-1
Como Construir um Compilador cap-1
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
JavaScript "for dummies"
JavaScript "for dummies"JavaScript "for dummies"
JavaScript "for dummies"
 
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
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?
 

Destaque

WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011Leonardo Balter
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
How to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsHow to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsZeno Rocha
 
Desbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateDesbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateZeno Rocha
 
Museu Do Pao & Forno Do Padeiro
Museu Do  Pao & Forno Do  PadeiroMuseu Do  Pao & Forno Do  Padeiro
Museu Do Pao & Forno Do PadeiroMUSEU DO PADEIRO
 
Super Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosSuper Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosZeno Rocha
 
Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Emerson Macedo
 
Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Zeno Rocha
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScriptZeno Rocha
 
Classe Dos AnfíBios
Classe Dos AnfíBiosClasse Dos AnfíBios
Classe Dos AnfíBiosSimone Morais
 
Os mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endOs mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endZeno Rocha
 
Mercado de automação no ES
Mercado de automação no ESMercado de automação no ES
Mercado de automação no ESFelipe Martins
 
Modelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas MultirrobôsModelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas MultirrobôsFelipe Martins
 

Destaque (20)

Animais
AnimaisAnimais
Animais
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
How to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsHow to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java Portals
 
HTML 5
HTML 5HTML 5
HTML 5
 
Desbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateDesbravando o HTML5 Boilerplate
Desbravando o HTML5 Boilerplate
 
Museu Do Pao & Forno Do Padeiro
Museu Do  Pao & Forno Do  PadeiroMuseu Do  Pao & Forno Do  Padeiro
Museu Do Pao & Forno Do Padeiro
 
Wordpress
WordpressWordpress
Wordpress
 
Super Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosSuper Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados Abertos
 
Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12
 
Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScript
 
Classe Dos AnfíBios
Classe Dos AnfíBiosClasse Dos AnfíBios
Classe Dos AnfíBios
 
It's Javascript Time
It's Javascript TimeIt's Javascript Time
It's Javascript Time
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Os mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endOs mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-end
 
Leão 1 B
Leão 1 BLeão 1 B
Leão 1 B
 
Mercado de automação no ES
Mercado de automação no ESMercado de automação no ES
Mercado de automação no ES
 
Modelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas MultirrobôsModelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
Modelagem e Controle de Robôs Móveis e Sistemas Multirrobôs
 

Semelhante a JavaScript for Beginners

JavaScript done right
JavaScript done rightJavaScript done right
JavaScript done rightSAPO Sessions
 
Javascript, Done Right
Javascript, Done RightJavascript, Done Right
Javascript, Done RightAndré Luís
 
Workshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptWorkshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptPedro Sousa
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
 
Algoritmos e Visualg parte 1
Algoritmos e Visualg   parte 1Algoritmos e Visualg   parte 1
Algoritmos e Visualg parte 1Marcio Pinto
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTelliando dias
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
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 RailsJulio Betta
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho Webgoal
 

Semelhante a JavaScript for Beginners (20)

JavaScript done right
JavaScript done rightJavaScript done right
JavaScript done right
 
Javascript, Done Right
Javascript, Done RightJavascript, Done Right
Javascript, Done Right
 
Workshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptWorkshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-pt
 
Java script
Java scriptJava script
Java script
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Algoritmos e Visualg parte 1
Algoritmos e Visualg   parte 1Algoritmos e Visualg   parte 1
Algoritmos e Visualg parte 1
 
Minicurso Java && Cl
Minicurso Java && ClMinicurso Java && Cl
Minicurso Java && Cl
 
Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)
 
modulo1.pdf
modulo1.pdfmodulo1.pdf
modulo1.pdf
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
JavaFX SestInfo 2010
JavaFX SestInfo 2010JavaFX SestInfo 2010
JavaFX SestInfo 2010
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Visão Geral de EJB 3.0
Visão Geral de EJB 3.0Visão Geral de EJB 3.0
Visão Geral de EJB 3.0
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 
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
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho
 

Mais de SAPO Sessions

Como preparar apresentações
Como preparar apresentaçõesComo preparar apresentações
Como preparar apresentaçõesSAPO Sessions
 
Como Preparar Apresentações
Como Preparar ApresentaçõesComo Preparar Apresentações
Como Preparar ApresentaçõesSAPO Sessions
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e MonitorizaçãoSAPO Sessions
 
Arquitectura De Um Linux
Arquitectura De Um LinuxArquitectura De Um Linux
Arquitectura De Um LinuxSAPO Sessions
 
Linux: História e Distros
Linux: História e DistrosLinux: História e Distros
Linux: História e DistrosSAPO Sessions
 
Prototype e LibSAPO.js
Prototype e LibSAPO.jsPrototype e LibSAPO.js
Prototype e LibSAPO.jsSAPO Sessions
 

Mais de SAPO Sessions (12)

Como preparar apresentações
Como preparar apresentaçõesComo preparar apresentações
Como preparar apresentações
 
Como Preparar Apresentações
Como Preparar ApresentaçõesComo Preparar Apresentações
Como Preparar Apresentações
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e Monitorização
 
Storage
StorageStorage
Storage
 
Falar Em Público
Falar Em PúblicoFalar Em Público
Falar Em Público
 
Command Line
Command LineCommand Line
Command Line
 
Arquitectura De Um Linux
Arquitectura De Um LinuxArquitectura De Um Linux
Arquitectura De Um Linux
 
Linux: História e Distros
Linux: História e DistrosLinux: História e Distros
Linux: História e Distros
 
Prototype e LibSAPO.js
Prototype e LibSAPO.jsPrototype e LibSAPO.js
Prototype e LibSAPO.js
 
HTML - How To
HTML - How ToHTML - How To
HTML - How To
 
CSS for Beginners
CSS for BeginnersCSS for Beginners
CSS for Beginners
 
Acessibilidade Web
Acessibilidade WebAcessibilidade Web
Acessibilidade Web
 

JavaScript for Beginners

  • 1. Sapo Sessions #2 JavaScript for Beginners Sintaxe, boas práticas, metodologias e outras informações úteis. Pedro Eugénio peugenio@co.sapo.pt http://igeni.us
  • 2. Sapo Sessions #2: Javascript for Beginners Sequência 1. Bem-vindo ao mundo Javascript biografia, javascript is not java!, hello world! 2. O básico variáveis, operadores, estruturas de controle, funções, objectos e eventos 3. O passo seguinte DOM
  • 3. Sapo Sessions #2: Javascript for Beginners 1. Bem-vindo Com que objectivo? Efeitos Animações Manipulação Validação RIA
  • 4. Sapo Sessions #2: Javascript for Beginners 1.1 História do Javascript ECMA-262: é uma especificação que serve de base para o javascript e jscript } ECMAScript: é a linguagem de scripts padronizada pelo ECMA-262 Tanto a tecnologia JavaScript 1990 - Inicio da mudança quanto a JScript são compatíveis com ECMAScript, porém cada um disponibiliza recursos adicionais Netscape - Livescript não descritos na especificação ECMA. IE - JScript Javascript 1996 - ECMA ECMAScript ECMA-262
  • 5. Sapo Sessions #2: Javascript for Beginners 1.2 Javascript is not Java!!! Whhhhhhhhhaaaaaaaaaatttt? Só a sintaxe é semelhante! Duas companhias diferentes Netscape e Sun Java precisa de uma JVM Javascript corre directamente no browser
  • 6. Sapo Sessions #2: Javascript for Beginners 1.3 Hello World <!DOCTYPE html PUBLIC quot;-/ /W3C/ /DTD XHTML 1.0 Transitional/ /ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;> <html lang=quot;ptquot;> <head> <title>Sapo Sessions - JavaScript</title> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=utf-8quot; /> <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/style.cssquot; media=quot;screenquot; /> </head> <body onload=quot;alert('Hello World!')quot;> <h1>Sapo Sessions: Javascript for Beginners</h1> <h2>Hello World!</h2> </body> </html>
  • 7. Sapo Sessions #2: Javascript for Beginners 1.3 Hello World <body onload=”alert(‘Hello World!’);”> body onload=”DON’T” HTML e código Javascript juntos porquê? A forma correcta script src=”helloWorld.js”
  • 8. Sapo Sessions #2: Javascript for Beginners Sequência 1. Bemvindo ao mundo Javascript biografia, javascript is not java!, hello world! 2. O básico variáveis, operadores, estruturas de controle, funções, objectos e eventos 3. O passo seguinte DOM
  • 9. Sapo Sessions #2: Javascript for Beginners 2. O básico Variáveis e Tipos Operadores Estruturas de controle Funções e Objectos Eventos
  • 10. Sapo Sessions #2: Javascript for Beginners 2.1 Variáveis e Tipos As variáveis em javascript não têm tipo fixo Qualquer valor pode ser guardado numa variável typeof variavel diz-nos o tipo da variável
  • 11. Sapo Sessions #2: Javascript for Beginners 2.1.1 Declaração de variáveis A visibilidade de uma variável depende da sua declaração var teste = “ola”; / variável local / teste = “ola”; / variável global /
  • 12. Sapo Sessions #2: Javascript for Beginners 2.1.2 Convenções Maiusculas, minusculas, “_” e “$” teste e Teste são duas variáveis diferentes Não se podem usar palavras reservadas http://javascript.about.com/library/ blreserved.htm
  • 13. Sapo Sessions #2: Javascript for Beginners 2.1.3 Tipos Primitivos São tratados e passados como valores Alguns permitem usar métodos quot;testequot;.toUpperCase();
  • 14. Sapo Sessions #2: Javascript for Beginners 2.1.3.1 Boolean Dois valores possíveis var verdade = true; var falso = false;
  • 15. Sapo Sessions #2: Javascript for Beginners 2.1.3.2 Numeric Pode-se usar variáveis do tipo Float ou Integer, mas são sempre tratadas como sendo do tipo Numeric var x = 10; var y = 25.3;
  • 16. Sapo Sessions #2: Javascript for Beginners 2.1.3.3 String Strings e caracteres são ambas strings var nome = “Pedro”; var letra = “c”;
  • 17. Sapo Sessions #2: Javascript for Beginners 2.1.4 Tipos Complexos Uma variável do tipo complexo é um Objecto É sempre passado por referência
  • 18. Sapo Sessions #2: Javascript for Beginners 2.1.4.1 Arrays Um Array é uma lista de elementos Podem conter todo e qualquer tipo de valores var lista = [0,”teste”,false]; var lista = new Array( 0 , “teste” , false ); lista[1] = ? “teste”
  • 19. Sapo Sessions #2: Javascript for Beginners 2.1.4.2 Objectos var objecto = new Object(); objecto.nome = “O meu objecto”; objecto.total = 20; objecto.init = function () { alert(“init”); }
  • 20. Sapo Sessions #2: Javascript for Beginners 2.2 Operadores var total = 1 + 1; total += 1; total -= 1; total == 1; total === String(1);
  • 21. Sapo Sessions #2: Javascript for Beginners 2.2.1 Aritmética somar, subtrair, multiplicar , dividir , resto da divisão +, -, * , / , %
  • 22. Sapo Sessions #2: Javascript for Beginners 2.2.1 Aritmética: “+” O operador “+” pode ser usado em três situações diferentes: concatenação de strings adição converter strings para números Não é boa prática!!! É preferível usar o Object Number: Number(a) para converter de string para número
  • 23. Sapo Sessions #2: Javascript for Beginners 2.2.2 Bitwise &, |, ^, ~, >>, <<, e >>> Tratam os argumentos como sendo binário e efectuam a operação especifica de seguida &, |, ^ efectuam as operações de: and, or e xor em cada bit individual ~ inverte todos os bits de um inteiro << e >> movem os bits assim como >>> mas este último não mantém o sinal da operação
  • 24. Sapo Sessions #2: Javascript for Beginners 2.2.3 Assignment =, +=, -=, /=, %= Atribuem um valor a uma variável x = 10; Pode apenas alterar a referência ao objecto x = umaFuncao;
  • 25. Sapo Sessions #2: Javascript for Beginners 2.2.4 Incrementadores ++ e -- Icrementam ou decrementam o valor de uma variável x++ ou x-- É o mesmo que dizer: Pega no valor de x e incrementa-lhe 1 Pega no valor de x e decrementa-lhe 1
  • 26. Sapo Sessions #2: Javascript for Beginners 2.2.5 Comparação ==, !=, >, >=, <, <=, ===, !== Servem para comparar variáveis Se contêm, ou não, o mesmo valor Se o valor de uma é maior ou menor Se o valor e o tipo são iguais/diferentes
  • 27. Sapo Sessions #2: Javascript for Beginners 2.2.6 Lógicos &&, || e ! Se a e (&&) b então... Se a ou (||) b então... Se não a (!a) então...
  • 28. Sapo Sessions #2: Javascript for Beginners 2.2.7 O Operador: quot;? :quot; É útil para substituir longas linhas de programação if/then/else return ( a && b ) ? a : b
  • 29. Sapo Sessions #2: Javascript for Beginners 2.3 Estruturas de controle Controlam a execução do código Decidem se o pedaço de código é executado ou não Permitem a execução repetida de pedaços de código
  • 30. Sapo Sessions #2: Javascript for Beginners 2.3.1 If if( a == b ) { alert( “a tem o mesmo valor que b” ); } if( a == b ) { alert( “a tem o mesmo valor que b” ); } else { alert( “não têm o mesmo valor” ); }
  • 31. Sapo Sessions #2: Javascript for Beginners 2.3.2 While while( x < 10 ) { alert( “estou-me a repetir” ); x++; / para podermos parar o ciclo / }
  • 32. Sapo Sessions #2: Javascript for Beginners 2.3.3 Do...While... do { alert( “aqui vou eu outra vez” ); c += 1; } while( c < 10 );
  • 33. Sapo Sessions #2: Javascript for Beginners 2.3.4 For for( var c = 0; c < 10; c++ ) { alert( “vai vai vai!!!” ); }
  • 34. Sapo Sessions #2: Javascript for Beginners 2.3.5 Switch switch( option ) { case quot;femeaquot; : alert( quot;Fquot; ); break; case quot;machoquot; : alert( quot;Mquot; ); break; }
  • 35. Sapo Sessions #2: Javascript for Beginners 2.3.5 Switch switch( option ) { case quot;femeaquot; : alert( quot;Fquot; ); break; case quot;machoquot; : alert( quot;Mquot; ); break; } ! E se não for macho ou femea?
  • 36. Sapo Sessions #2: Javascript for Beginners 2.3.5 Switch switch( option ) { case quot;femeaquot; : alert( quot;Fquot; ); break; case quot;machoquot; : alert( quot;Mquot; ); break; default: alert( “outro” ); break; }
  • 37. Sapo Sessions #2: Javascript for Beginners 2.4 Funções e Objectos Funções permitem partir o código em diferentes partes Objectos permitem estruturar o código de forma modular var myObj = new Object(); myObj.nome = ‘Pedro’; ou var myObj = { nome: ‘Pedro’ };
  • 38. Sapo Sessions #2: Javascript for Beginners 2.4.1 Funções function helloWorld () { } Uma função var helloWorld = function () { } Uma função que se parece com o objecto que é de qualquer forma elem.onclick = function () { } Uma função anónima
  • 39. Sapo Sessions #2: Javascript for Beginners 2.5 Eventos Um evento ocorre quando acontece algo na página do browser document loading mouse click mouse over ...
  • 40. Sapo Sessions #2: Javascript for Beginners Sequência 1. Bemvindo ao mundo Javascript biografia, javascript is not java!, hello world! 2. O básico variáveis, operadores, estruturas de controle, funções, objectos e eventos 3. O passo seguinte DOM
  • 41. Sapo Sessions #2: Javascript for Beginners 3. O passo seguinte Document Object Model (DOM) Exemplo do uso de javascript numa ferramenta poderosa Manipulação da estrutura HTML sem necessidade de fazer reload à página
  • 42. Sapo Sessions #2: Javascript for Beginners 3.1 DOM
  • 43. Sapo Sessions #2: Javascript for Beginners 3.1.1 Introdução Manipulação da estrutura HTML Alteração/Criação/Remoção de elementos Alteração do estilo de um elemento
  • 44. Sapo Sessions #2: Javascript for Beginners 3.1.2 Pesquisar elemento Quero o elemento com id “eid” document.getElementById(“eid”); Quero todos os links da página document.getElementsByTagName(“a”);
  • 45. Sapo Sessions #2: Javascript for Beginners 3.1.3 Alterar elemento Quero que o elemento com id igual a “caixa” tenha o valor “teste” var caixa = document.getElementById( ‘caixa’ ); caixa.value = “teste”;
  • 46. Sapo Sessions #2: Javascript for Beginners 3.1.4 Adicionar elemento Quero criar um novo link na página var oLink = document.createElement(“a”); oLink.innerHTML = “mais um link”; oLink.href = “http://www.sapo.pt”; document.body.appendChild(oLink);
  • 47. Sapo Sessions #2: Javascript for Beginners 3.1.5 Alterar o estilo do elemento Quero que a página agora fique com um background negro document.body.style.backgroundColor = “black”;
  • 48. Sapo Sessions #2: Javascript for Beginners 3.1.6 Remover elemento Quero remover da página o elemento “elem” elem.parentNode.removeChild(elem);
  • 49. Sapo Sessions #2: Javascript for Beginners 4. Aplicação: Modal Window
  • 50. Sapo Sessions #2: Javascript for Beginners Perguntas? Pedro Eugénio email: peugenio@co.sapo.pt messenger: voxmachina@sapo.pt web: igeni.us
  • 51. Sapo Sessions #2: Javascript for Beginners Recursos Javascript: http://www.w3schools.com/JS/ FireBug: http://getfirebug.com/ DOM: http://www.w3.org/DOM/
  • 52. Sapo Sessions #2: Javascript for Beginners setTimeout( “endPresentation();” , 3000 );