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

[Codeminer42 Brownbags] JavaScript - as partes essenciais

[Codeminer42 Brownbags] JavaScript - as partes essenciais

Vamos falar sobre as partes essenciais que compõe a espinha dorsal do JavaScript. Partes que talvez você não saibam que existem ou o quanto impactam no código que você escreve no dia-a-dia, mas elas sempre estiveram ali!

More Decks by Talysson de Oliveira Cassiano

Other Decks in Programming

Transcript

  1. O que significa “essencial”? - A comunidade JS é bastante

    ativa - Várias ferramentas, bibliotecas, frameworks - É comum focarmos nas ferramentas, e esquecermos a base: a linguagem - O essencial é tudo da linguagem que vai te perseguir não interessa qual ferramenta use - Não saber o essencial significa não usar todas as vantagens oferecidas pela linguagem 3
  2. 5 High-order functions e Callbacks - Em JS, funções são

    first-class citizens - Funções são tratadas como qualquer outra variável - Passadas como argumento e também retornadas - Uma função passada como argumento é chamada de callback - Um callback só é invocado quando a função que o recebe decide chamá-lo
  3. 6

  4. 7

  5. 8

  6. 9

  7. 10

  8. 13 Escopo e closures - O escopo de uma função

    é seu contexto atual - Composto por valores acessíveis naquele ponto - Este escopo inclui tanto valores dentro da própria função quanto valores do escopo superior ao atual - Uma função que acessa valores de um escopo pertencente à outra função é chamada de closure - Closures permitem que função “carreguem valores”
  9. 14

  10. 15

  11. 18 Arrow functions, Functions e this - O JS possui

    2 tipos principais de funções - Arrow functions foram adicionadas mais recentemente à linguagem - A diferença das duas não se restringe à sintaxe - Funções possuem uma variável especial: this - Conseguimos manipular o valor de this - Mas, arrow functions trabalham diferente com o this
  12. 19

  13. 20

  14. 21

  15. 22

  16. 23

  17. 24

  18. 25

  19. 26

  20. 27

  21. 28

  22. 29

  23. 30

  24. 31

  25. 35 Links sobre - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/F unctions - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen ce/Functions/Arrow_functions -

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen ce/Operators/this - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen ce/Global_Objects/Function/bind - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen ce/Global_Objects/Function/Call - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen ce/Global_Objects/Function/Apply
  26. 37 Prototype - Prototype é o modelo de objetos usado

    pelo JS - Podemos dizer que JS não tem realmente classes, a sintaxe class é apenas um atalho para prototypes - O prototype de um objeto define quais métodos e propriedades ele terá quando instanciado - Tipos primitivos também acessam prototypes - Eles podem ser modificados depois de definidos, e isso permite uma grande funcionalidade: polyfill
  27. 38

  28. 39

  29. 40

  30. 41

  31. 42

  32. 43

  33. 44

  34. 47 Promises e async/await - Promises são objetos que representam

    o resultado (sucesso/falha) eventual de uma operação assíncrona - Surgiram como uma melhor forma de organizar o uso de callbacks aninhados para assincronia - Não é possível "tirar o valor" de uma promise - Acessamos este resultado através de um callback - async/await é uma feature baseada em promises que melhora a ergonomia das promises
  35. 48

  36. 49

  37. 50

  38. 51

  39. 52

  40. 53

  41. 54

  42. 55