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

Javascript, um menino serelepe | Javascript, a serelepe guy

Javascript, um menino serelepe | Javascript, a serelepe guy

- 16º Guru Sorocaba (12/01/2019)
- Front in Santa Maria (08/06/2019)

3e4b321cfe49136ead7cbfcb5d45a8f0?s=128

Juliana Negreiros

June 08, 2019
Tweet

More Decks by Juliana Negreiros

Other Decks in Technology

Transcript

  1. UM MENINO SERELEPE JAVASCRIPTO

  2. JULIANA NEGREIROS @juunegreiros

  3. ENTENDENDO UM CORAÇÃO BONDOSO <3

  4. VARIÁVEIS

  5. var nome = 'Juliana' var nome = 'Nome Qualquer' nome

    = 'Qualquer'
  6. None
  7. let nome = 'Juliana' nome = 'Outro Nome'

  8. const nome = 'Juliana' const nomes = ['Juliana','Nome Qualquer'] nomes.push('Outro

    Nome')
  9. var imprima = (valor) => { console.log(valor) if(valor > 5){

    var novoValor = valor + 1 console.log(novoValor) } console.log(novoValor) } > imprima(4) > 4 > undefined > imprima(6) > 6 > 7 > 7
  10. const imprima = (valor) => { console.log(valor) if(valor > 5){

    const novoValor = valor + 1 console.log(novoValor) } console.log(novoValor) } > imprima(4) > 4 > Uncaught ReferenceError: novoValor is not defined > imprima(6) > 6 > 7 > Uncaught ReferenceError: novoValor is not defined
  11. TIPAGEM

  12. TIPAGEM DINÂMICA

  13. typeof > typeof 1 > 'number' > typeof 'ju' >

    'string' > typeof true > 'boolean' > typeof () => {} > 'function'
  14. typeof > arr[0] = 'ju' > obj.nome = 'ju' >

    obj['nome'] = 'ju' > typeof [] > 'object' > typeof {} > 'object'
  15. typeof > const arr = [] > Array.isArray(arr) > true

  16. null vs undefined > let nome > let nome =

    null > typeof null > 'object' > typeof undefined > 'undefined' > null == undefined > true > null === undefined > false
  17. NaN > const numero = NaN > Number.isNaN(numero) > true

    > NaN == NaN > false > typeof(NaN) > 'number' JS
  18. Comparações > 0 == null > false > [] ==

    0 > true > null == undefined > true > !!undefined > false
  19. Comparações null 0 undefined NaN '' if(nome) if(nome != '')

  20. Comparações > [] == 0 > if([]) > Boolean(0) >

    false > Boolean([]) > true
  21. Operações > 20 + '1' > '201' > 20 -

    '1' > 19 > true - true > 0 > 20 + '1' > '201' > 'um' - 1 > 0
  22. Operações > [] + [] > '' > [] +

    {} > '[object Object]' > {} + {} > '[object Object][object Object]' > {} + [] > 0 > console.log({} + []) > '[object Object]'
  23. None
  24. Operações > 1 < 2 < 3 > true

  25. Operações > 3 < 2 < 1 > true

  26. toString

  27. toString > const numeros = [1, 2, 3] > numeros.toString()

    > '1,2,3' > const idade = 24 > idade.toString() > '24'
  28. toString > toString() > '[object Undefined]' > 'ju'.toString() > 'ju'

  29. toString > const nome = new String('ju') > typeof nome

    > 'object' > nome.toString() > 'ju'
  30. toString > const nome = new String('ju') > typeof nome

    > 'object' > nome.toString() > 'ju' > const obj = {} > obj.toString() > '[object Object]'
  31. toString > const obj = { toString () { return

    'ju' } } > obj.toString() > 'ju'
  32. None
  33. > const text = 'palavra' > text.link('url') > '<a href="url">palavra</a>'

  34. Como não acreditar na boa intenção desse menino?

  35. Resumindo > Usar === ao invés de == > Fazer

    a coerção na mão com Boolean(), Number() e String() > Não use typeof pra saber se algo é um array > Não confie em usar typeof com objetos > Bibliotecas
  36. None
  37. FOQUE NO QUE DÁ PRA FAZER DE LEGAL COM A

    LINGUAGEM, NÃO NOS DEFEITOS <3
  38. OBRIGADA! bit.ly/ js-serelepe @juunegreiros