Optional chaining - Novas funcionalidades do JavaScript no ES2020

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ม.ค. 2025

ความคิดเห็น • 78

  • @wallacekastfotografia4140
    @wallacekastfotografia4140 4 ปีที่แล้ว +1

    sou iniciante sua didatica é top de mais eu que não entendo mt coisa , ja aprendi mt só com esse video

  • @DiegoGarcia-ex7rj
    @DiegoGarcia-ex7rj 4 ปีที่แล้ว +9

    Acho que essa feature é uma daquelas que muda toda a forma programação da comunidade do JS! Igual ocorreu com arrow functions, spread operators e muitas outras! Com certeza o hype é gigante!! Parabéns pelo vídeo!!!

    • @jaydson
      @jaydson 4 ปีที่แล้ว +2

      Boa Diego! Bem isso, JS cada vez mais com features que nos facilitam a vida né

  • @ldcoder7482
    @ldcoder7482 4 ปีที่แล้ว

    JS evoluindo cada vez mais e facilitando mais ainda a vida da gente!

  • @MrChrusade
    @MrChrusade 4 ปีที่แล้ว

    Esse cara parece um tipo que a gente gostaria de fazer amizade haha super gente boa.

  • @evertonbuzzi5884
    @evertonbuzzi5884 4 ปีที่แล้ว

    Absurdamente útil, parabéns pelo video

  • @ohervis
    @ohervis 4 ปีที่แล้ว +2

    Pra galera que ficou pensando como isso era feito antes.
    No time em que atuo, criamos uma entidade/class/FactoryFunction para cada item desse objeto, afim de replicar a estrutura de dados que retorna do backend.
    e para cada item, fazemos um || caso não retorne o valor.
    class Artist {
    constructor(data = {}) {
    this.gender = data.gender || 'Nenhum gênero informado';
    }
    }
    mas para os Ifs simples da vida, Optional chaining é muito lindo

  • @stapait
    @stapait 4 ปีที่แล้ว +2

    Ótimo vídeo, muito bem explicado

    • @jaydson
      @jaydson 4 ปีที่แล้ว +1

      Opa, valeu Fabio!

  • @icarofreire9824
    @icarofreire9824 4 ปีที่แล้ว

    Sou desenvolvedor e não tenho interesses e objetivos com JavaScript, mas assisto seus videos por conta de seu humor e didática. ;) Rsrsrs...

  • @Paulo-cf4mh
    @Paulo-cf4mh 4 ปีที่แล้ว

    Ótimo vídeo!! Parabéns !!

  • @wagnaomoreira3961
    @wagnaomoreira3961 4 ปีที่แล้ว +2

    Estou começando meus estudos recentemente e este canal está me ajudando demais.
    Agradeço a todos , muito obrigado mesmo 👍

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Que ótimo saber disso Wagnão!

  • @Flamengonoticiasanalises
    @Flamengonoticiasanalises 4 ปีที่แล้ว +1

    Rapaz, a explicação foi tão boa que eu como iniciante entendi. Obrigado

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Pô, que bom Gleiton!

  • @iagobontempocosta
    @iagobontempocosta 4 ปีที่แล้ว +9

    "Pra mim machine learning é um monte de if". kakakakakakak, muito bom!! Excelente conteúdo e trilha sonora!!

    • @jaydson
      @jaydson 4 ปีที่แล้ว +2

      AHahahah valeu Iago!

    • @gumiranda
      @gumiranda 4 ปีที่แล้ว

      Negocio eh aprender node com o faustão!!! m.th-cam.com/play/PLOLxKcKOmmhTsT7YeLi53QGs3sRQlkwWV.html

  • @barddoo
    @barddoo 4 ปีที่แล้ว

    Interessante ver as novidades do es20, tem isso em kotlin há muito tempo, bom ver que estão correndo atrás

  • @yvanrondon714
    @yvanrondon714 4 ปีที่แล้ว +1

    SENSACIONAL!!! Esses aninhamentos explodem a cabeça kkkkk js sempre evoluindo!! top

    • @jaydson
      @jaydson 4 ปีที่แล้ว +1

      Ahahah sim! Agora fica mais fácil não se perder

  • @fredentino
    @fredentino 4 ปีที่แล้ว

    Gostei! Sou muito fraco em JS.

  • @airsoftmoment
    @airsoftmoment 4 ปีที่แล้ว +2

    Eu uso o lodash (_.get) para pegar valores

  • @alextalha_
    @alextalha_ 4 ปีที่แล้ว

    muito boa a explicação.

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Valeu Alex! Que bom que curtiu

  • @marcosgarcia179
    @marcosgarcia179 4 ปีที่แล้ว

    Boa!

  • @guilhermecordeiro483
    @guilhermecordeiro483 4 ปีที่แล้ว +2

    Ótimo conteúdo

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Valeu Guilherme!

  • @marcusmaiialima
    @marcusmaiialima 4 ปีที่แล้ว +1

    Nossa, que maravilha está chegando isso, porque é foda depender de libs ou ficar fazendo vaaaaaaaaaarios if's para validações!

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      É um alívio mesmo né Marcus. Chega daquele macarrão de ifs ahahah

  • @etoledobox2093
    @etoledobox2093 4 ปีที่แล้ว +11

    Um colírio para os olhos dos devs que fazem aninhamentos bizarros

    • @jaydson
      @jaydson 4 ปีที่แล้ว +1

      Ahahah verdade

  • @passaronegro349
    @passaronegro349 3 ปีที่แล้ว

    Jason ...haha rsr boa !!

  • @Lzulian
    @Lzulian 4 ปีที่แล้ว +4

    Quem desenvolvia para ie7 se emociona a cada evolução do js hahahaha

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Heheh verdade Luiz. Até hoje eu sonho com IE6 e IE7

    • @fabiofelipe3238
      @fabiofelipe3238 4 ปีที่แล้ว

      @@jaydson os novos programadores não sabem o que é programar para o IE6. kkkkkkkkkkkkkkkkkk

  • @lucasvieira882
    @lucasvieira882 4 ปีที่แล้ว +1

    Muiitoo bom

    • @jaydson
      @jaydson 4 ปีที่แล้ว +1

      Valeu Lucas!

  • @AlbertoMonteiro
    @AlbertoMonteiro 4 ปีที่แล้ว +12

    Uso muito isso no C#, sentia muita falta disso no js
    Podia ter mostrado executando um método também =D
    meuArray?.forEach(...)

    • @jaydson
      @jaydson 4 ปีที่แล้ว +4

      Ah verdade Alberto! Muito útil poder usar em chamada de métodos né?
      Tem vários usos e realmente facilita bastante

    • @adoniasalcantara522
      @adoniasalcantara522 4 ปีที่แล้ว +1

      Q massa q tem no C#! Eu uso muito no Kotlin tb
      val mapped = myArray?.map { ... } ?: arrayOf(item1, item2, ...)

  • @luizclr
    @luizclr 4 ปีที่แล้ว +1

    Valeu, Jaydson. Ótimo conteúdo e com a fonte maior agr.. rsrs

    • @jaydson
      @jaydson 4 ปีที่แล้ว +1

      Boa Luiz! Valeu!
      Hehhe sim, agora ficou bom né?

  • @lucasfrutig4945
    @lucasfrutig4945 4 ปีที่แล้ว

    show

  • @jorgealegretti4796
    @jorgealegretti4796 4 ปีที่แล้ว +2

    Esse else no final poderia até fazer um forEach para mostrar qual key que está invalida

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Boa Jorge :)

  • @matheusluna9309
    @matheusluna9309 4 ปีที่แล้ว +3

    "Machine Learning é um monte de ir kkkkkkkkk", ótimo conteúdo.

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      HAhaah :p

  • @LuizEduardoSol
    @LuizEduardoSol 4 ปีที่แล้ว +2

    Bem legal o vídeo. Só uma dica de inglês: gender significa gênero no sentido de gênero sexual (masculino, feminino etc). Pra gêneros musicais geralmente se usa genre ;)
    Keep up the good work!

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Ahahahah mas que cagada! 🤦‍
      Pior que fiz o código na hora e fiquei pensando que tinha algo estranho naquele gender. Valeu Luiz!

  • @Antitribus
    @Antitribus 4 ปีที่แล้ว +3

    Explicação foi boa, mas um pouco demorada, acho que um vídeo de 3 a 4 minutos no máximo já seria suficiente.

  • @angeloweiss9023
    @angeloweiss9023 4 ปีที่แล้ว

    outra opção igualmente medonha:
    let data = {};
    data = response.data; // assumindo que os dados venham de uma API
    (((data || {}).users || [] ) [0] || {}).favorite_artists
    ou faz um object destructuring que tbm fica chavoso

  • @CristopherYusuke
    @CristopherYusuke 4 ปีที่แล้ว +1

    ta precisando de um suporte para o microfone , ta capitando muito o Jaydson batendo na mesa hahahaha ,
    mas como sempre otimo video , sempre transendo de forma muito mais palatavel as novidades do JS

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Valeu Cris! Eu gravei dois vídeos no mesmo dia e fiz essa cagada de ficar batendo na mesa :/
      Nos próximos já tá resolvido isso. Valeu!

  • @stapait
    @stapait 4 ปีที่แล้ว

    Uma dúvida, no Node 14.3.0 não aparece mais aquele warning do import pra os módulos dizendo que é uma feature experimental. Olhei na documentação e ainda está experimental, sabe dizer o motivo?

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Pelo que entendi na doc é pq agora o "experimental" está vindo como padrão, saca?
      Como em breve isso estará estável acho que já tiraram o warning.
      nodejs.org/dist/latest-v14.x/docs/api/esm.html

  • @vicentedpsantos
    @vicentedpsantos 4 ปีที่แล้ว

    Gender não, Jaydson! É Genre! hehe Massa o vídeo. Abraço

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      eheh sim, algumas pessoas já avisaram aqui nos comentários. Falha total, no próximo eu arrumo! ahahah

  • @Jesus24horasTV
    @Jesus24horasTV 4 ปีที่แล้ว +2

    Enxugou o código!! 👍

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      👍👍

  • @gcacars
    @gcacars 4 ปีที่แล้ว

    if (Array.isArray(data.users[0].favorite_artists))...

  • @mti2fw
    @mti2fw 4 ปีที่แล้ว

    Qual biblioteca servia para este fim??

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Tem várias Mateus, não só libs, algumas técnicas também resolvem o problema.
      Como o Lucas citou aqui, ele usa o lodash (lodash.com/), eu já usei também, mas ao longo do tempo já usei outras também, baseadas em schemas, etc.
      Vale citar também TypeScript e outros subsets ou libs para tipos que ajudam isso em tempo de compilação.
      O bom é que agora não precisamos mais nos preocupar com isso :)

    • @mti2fw
      @mti2fw 4 ปีที่แล้ว

      Que legal,​@@jaydson. Não sabia que havia esta funcionalidade no lodash. Já usei o optional chaining no Ts porém no dia a dia infelizmente ainda não posso utilizar nem Ts e nem o ES2020, então terei que usar a funcionalidade do lodash mesmo. Muito obrigado! :D

  • @arlandantas
    @arlandantas 4 ปีที่แล้ว

    UMA DÚVIDA!
    Se eu tiver um objeto:
    let obj = { _users: [ { name: 'A1', info: { i1: 'informacao' } } ]
    E tentar:
    obj.users[0].info?.i1
    Vai retornar erro, certo?
    Então o ideal seria eu testar em todos os níveis?
    Tipo:
    obj?.users?[0]?.info?.i1
    Seria algo assim?

    • @arlandantas
      @arlandantas 4 ปีที่แล้ว +1

      AHH... Parabéns pelo conteúdo! hehe
      Muito boommm!!!

    • @jaydson
      @jaydson 4 ปีที่แล้ว +1

      Isso Arlan, pode testar todos níveis.
      Para acessar valores de arrays com optional chaining aí é assim:
      obj.users?.[0]

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      @@arlandantas Valeuuuu!

  • @leandrocarvalho1760
    @leandrocarvalho1760 4 ปีที่แล้ว

    Pra um trem desses de erro eu faria assim
    let data = null;
    try{
    data = obj.arrat[0].property.array....
    } catch() {
    data = 'not found';
    }
    console.log(data)

  • @luan_maik
    @luan_maik 4 ปีที่แล้ว

    isso é o elvis operator do angular kkkkk

  • @eduardomb
    @eduardomb 4 ปีที่แล้ว +2

    genre*

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      Poucos notoram o meu Easter egg Ahuahuhauhau
      Zoera, foi cagada mesmo

    • @eduardomb
      @eduardomb 4 ปีที่แล้ว

      Irrelevante pro propósito do vídeo, q ficou muito bem exemplificado, parabéns pelo conteúdo!

  • @jairfsj
    @jairfsj 4 ปีที่แล้ว

    Cara agente gosta de umas banda parecidas em kkk, pegunta nada haver com o conteudo vc curte Down ?

  • @BajoMendez
    @BajoMendez 4 ปีที่แล้ว

    nunca fiz esse if pra resolver esse problema... acho que a comunidade java script fica procurando chifre na cabeça de cavalo... 7:00

  • @MrPhiineasKK
    @MrPhiineasKK 4 ปีที่แล้ว

    lodash _.get() é sucesso kkkkk

  •  4 ปีที่แล้ว +1

    Quebrou o enter kkkkkkkkkk

    • @jaydson
      @jaydson 4 ปีที่แล้ว

      :p