Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Javascript para desenvolvedores

Javascript para desenvolvedores

Palestra ministrada para o pessoal do projeto GT-GIIRO no POP-Ba.

Other Decks in Programming

Transcript

  1. 2 Full stack web developer Amante de boas práticas de

    programação e otimização de algoritmo. Amo assistir filmes e séries, jogar e surfar. Marcos A. de S. Silva
  2. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 3
  3. 4

  4. 7

  5. Multi-paradigma: • com base em protótipo funcional • imperativo •

    scripts 9 Características Estilo de tipagem: • Dinâmica, • fraca, • implícita
  6. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 10
  7. 12 var global_var = "Global"; var dados = {"menu": {

    "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} function foo(){ var local_var = "Local"; dados.value = local_var; } console.log(local_var); //reference error
  8. 15 var global_var = true; ;(function() { 'use strict'; var

    local_var = "local variável da função imediata"; function foo2(){ var local_var = "foo2"; console.log(local_var);// foo2 } console.log(local_var); //local variável da função imediata }());
  9. 16 var global_var = true; //Escopo global ;(function() { //Escopo

    1 'use strict'; var local_var = "local variável da função imediata"; function foo2(){ //Escopo 2 var local_var = "foo2"; console.log(local_var);// foo2 } console.log(local_var); //local variável da função imediata }());
  10. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 17
  11. 18 function fazerSaudacao(nome) { var saudacao = "Olá " +

    nome; function mostrarSaudacao() { alert(saudacao); } return mostrarSaudacao; } var saudacao = fazerSaudacao("Marcos"); saudacao(); //mostra a saudação
  12. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 19
  13. ;(function() { 'use strict'; function Pessoa(nome, sobrenome){ this.nome = nome;

    this.sobrenome = sobrenome; } Pessoa.prototype.nomeCompleto = function(){ return this.nome + " " + this.sobrenome; }; var marcos = new Pessoa("Marcos","Silva"); console.log(marcos.nomeCompleto()); //Marcos Silva }()); 20
  14. Quando um objeto é criado, um link é feito entre

    esse objeto e o prototype do constructor var marcos = new Pessoa("Marcos","Silva"); marcos.__proto__ === Pessoa.prototype; //true 21
  15. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 22
  16. ;(function() { 'use strict'; function Pessoa(nome, sobrenome){ this.nome = nome;

    this.sobrenome = sobrenome; } Pessoa.prototype.nomeCompleto = function(){ return this.nome + " " + this.sobrenome; }; var marcos = new Pessoa("Marcos","Silva"); console.log(marcos.nomeCompleto()); //Marcos Silva }()); 23
  17. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 24
  18. 25

  19. (function($){ 'use strict'; // Ao término do carregamento da página

    $(document).ready(function(){ //Add evento clique ao elemento pelo id $("#btn_1").on("click",function(){ console.log("Cliquei botão 1."); }); //Mudando atributo css pela classe $(".display-none").css("display","none"); //Selecionando elemento pela tag $("select").addClass("estilo1"); }); })(jQuery); 26
  20. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 27
  21. Json {"menu": { "value": "File", "popup": { "menuitem": [ {"value":

    "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} 28 <menu value="File"> <popup> <menuitem value="New" onclick="CreateNewDoc()" /> <menuitem value="Open" onclick="OpenDoc()" /> <menuitem value="Close" onclick="CloseDoc()" /> </popup> </menu> XML
  22. Json {"menu": { "value": "File", "popup": { "menuitem": [ {"value":

    "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} 29 var dados = {"menu": { "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} Objeto em Javascript
  23. $.ajax({ url: “url”, type: “método”, //POST ou GET, contentType: “tipo”

    , //'application/json', dataType: “tipo dados de retorno”, //json, data: {..}, //dados no formato ContentType success: function(data){} }); 30 $.get(“url”, function(resposta){ //... }); POST e GET GET
  24. • O que é? • Escopo • Closures • Constructors

    + Prototype • Entendendo o ‘this’ • Biblioteca(Jquery) ◦ Introdução ◦ Seletores ◦ Eventos • Conversa cliente - servidor ◦ JSON ◦ Ajax 32