Тёмный

Como validar tipos de dados no JavaScript de um jeito sensacional! |  

Mario Souto - Dev Soutinho
Подписаться 89 тыс.
Просмотров 3,7 тыс.
50% 1

Você já usou o typeof do JavaScript e ele não resolvia o que você queria? Seus problemas acabaram! No vídeo de hoje você vai ver como usar o método toString dos Objetos pra conseguir
🔸 Código do vídeo (Melhorado ainda pelo inscrito do canal @Arthur Guedes, muito obrigado!)
■ gist.github.co...
🔸Quer ver mais conteúdos meus? Segue ai!
■ / omariosouto
■ / omariosouto
■ t.me/hipstersf...
🔸Sabia que eu tenho séries na Alura também?
■ www.alura.com....
■ www.alura.com....
#DicasDeJavaScript #JavaScript #Validação

Опубликовано:

 

7 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 71   
@vitoremidio4090
@vitoremidio4090 4 года назад
typeof [] eh objeto. Se tentar diferenciar objeto {} ou array [] com typeof não irá conseguir pq para ambos vai retornar "object". No array tem um método acho que chamado "isArray", aí sim ele ele eh possível saber se eh um array ou não: Array.isArray([]) Muito tempo atrás tive que fazer uns if's para definir os fluxos de uma função. Se fosse objeto, array ou outra coisa teria comportamento diferente. Vamos ver se o que acabei de falar tirando da minha mente vai bater com o que for explicado no vídeo
@DevSoutinho
@DevSoutinho 4 года назад
Cara, no video eu cometi o erro de não citar o isArray, valeu pelo comentário que super agregou no video!!!
@kauanmocelin
@kauanmocelin 4 года назад
Muito bom essas dicas que ensinam como as coisas funcionam por baixo dos panos, apoio continuar com vídeos assim :)
@adelmarvilela7314
@adelmarvilela7314 4 года назад
Concordo Kauan Mocelin
@hebsonaraujo3171
@hebsonaraujo3171 4 года назад
Concordo também.
@DevSoutinho
@DevSoutinho 4 года назад
Vai rolar mais!!! finalizando um roteiro agorinha!
@GuilhermeTeixeira
@GuilhermeTeixeira 4 года назад
No início do vídeo eu chutei "object" mesmo, mas só compreendi de fato com a sua explicaçã. Valeu, Mario!
@DevSoutinho
@DevSoutinho 4 года назад
Eu que agradeço o feedback! Sinal que os vídeos tão ajudando mesmo \o
@asuosnotielc
@asuosnotielc 4 года назад
Javascript é demais! Sempre surpreendendo (apensar de que eu sabia essa resposta! rs)! =)
@DevSoutinho
@DevSoutinho 4 года назад
sauhashusuha justo
@salvimateus
@salvimateus 4 года назад
opa, eu quero mais videos sobre prototipos 🙌🏻🙌🏻🙌🏻
@DevSoutinho
@DevSoutinho 4 года назад
Vai rolar junto com o vídeo que e ufalo que classes são uma mentira no js
@vyamashiro
@vyamashiro 3 года назад
@@DevSoutinho Esse vídeo saiu??
@fabriciosouza408
@fabriciosouza408 3 года назад
Muito bom! Ficou toLowerCase duas vezes
@DevSoutinho
@DevSoutinho 3 года назад
Ahshahshsh bom ponto! Fui na emoção de gravar
@lucasmiranda3700
@lucasmiranda3700 4 года назад
Vídeo top! Vou deixar a sugestão de fazer um vídeo sobre expressions, statements, operators e values
@DevSoutinho
@DevSoutinho 4 года назад
Boa ideia!!!!
@hugorafaelalves3922
@hugorafaelalves3922 3 года назад
Música manerona, envolvente!
@hakuenstudio
@hakuenstudio 4 года назад
Massa!
@DevSoutinho
@DevSoutinho 4 года назад
Vaaaaaleu!
@resen1660
@resen1660 8 месяцев назад
Muito interessante essa dica, mas tem um pequeno problema nessa função. O retorno do toString tem o padrão [object *Tipo*], ou seja, ele sempre terá a palavra object independente do tipo de valor. Usar includes para essa verificação causa problemas se for tentar verificar se algum dado é um objeto, pois a função retornará true independente de ser um objeto ou não. Acho que uma opção seria usar RegExp para verificar exatamente a segunda palavra, mas é ainda mais simples cortar a string e continuar usando includes. Algo como: function is(type, value) { const typeRes = Object.prototype.toString.call(value).toLowerCase(); const sliceTypeRes = typeRes.slice(8); return sliceTypeRes.includes(type); }; *Edição:* Também é possível recortar apenas o tipo com um slice só e verificar a igualdade: function is(type, value) { const typeRes = Object.prototype.toString.call(value).toLowerCase(); const sliceTypeRes = typeRes.slice(8, -1); return sliceTypeRes == type.toLowerCase(); };
@FelipeFialhoDev
@FelipeFialhoDev 4 года назад
Resposta: object 😋 O motivo não lembro hahaha, mas já vi essa pegadinha no passado 😂 Agora vou ver o resto, amo essas curiosidades do JavaScript
@DevSoutinho
@DevSoutinho 4 года назад
sauhshusahuhus curtiu no final?
@FelipeFialhoDev
@FelipeFialhoDev 4 года назад
@@DevSoutinho Sim! hahaha, sua didatica é foda meu mano 😁
@brunowponto
@brunowponto 4 года назад
Massa bother!
@DevSoutinho
@DevSoutinho 4 года назад
valeu mano!
@JesleyNonato87
@JesleyNonato87 4 года назад
Boa dica mano! Acertei pq já quebrei muito a cabeça com isso rs... e já tomei muito [object object]! kkkkkkkk
@DevSoutinho
@DevSoutinho 4 года назад
sauhsahushuahus melhor erro pra se tomar
@mayaraalencar2860
@mayaraalencar2860 4 года назад
Resposta: object se eu não me engano, porque a Array na verdade é um objeto com atributos numéricos. tipo assim: { 0: "Mayara", 1: "Alencar"}
@DevSoutinho
@DevSoutinho 4 года назад
Seraaase?
@LuanPorto4
@LuanPorto4 2 года назад
Opa! A função que você passou, quando usada para validar um objeto, sempre retornará verdadeiro, já que todos retornos da função prototype começarão com [object ...]. GAMBIARRA: usar um .replace('[object, '') na variável toStringResult, para poder validar somente o final do retorno.
@adelmarvilela7314
@adelmarvilela7314 4 года назад
Eu tô tentando me introduzir na programação. Vc poderia me dar alguma sugestão de linguagem para eu começar a programar?
@DevSoutinho
@DevSoutinho 4 года назад
Opa, tu manja de lógica hoje ou ta zerado?
@Cheng32290
@Cheng32290 4 года назад
Reposta: object Motivo: se nao me engano, porque Array nao eh um tipo primario em JS
@DevSoutinho
@DevSoutinho 4 года назад
Seráaase? sauhsahus
@MarcosRCordeiro10
@MarcosRCordeiro10 4 года назад
AE!!! Chegou vídeo novo!!!
@DevSoutinho
@DevSoutinho 4 года назад
Você ganhou o troféu first do canal #DevSoutinho 🏆
@DevSoutinho
@DevSoutinho 4 года назад
Siiim!!! ta na mão \o/
@ruanvalente7496
@ruanvalente7496 4 года назад
Eu acertei hahaha
@DevSoutinho
@DevSoutinho 4 года назад
Como diria silvio santos "certa resposta" sauhsahusa
@felipegarcia6206
@felipegarcia6206 4 года назад
Ei Mario, blz? Até que acertei sobre o retorno, mas aprendi um bocado com esse vídeo. Vlw mesmo! Ficou uma dúvida: Por que 0.toString() e {}.toString() dão erro Mas ''.toString() não? 🤔
@DevSoutinho
@DevSoutinho 4 года назад
Mandei a pergunta pra um brasileiro que trampa no TC39 mexendo nos internals do JS, talvez ele consiga ajudar mais do que eu com uma resposta correta, segue o link: twitter.com/omariosouto/status/1305222651053592576
@felipegarcia6206
@felipegarcia6206 4 года назад
@@DevSoutinho vlw!! Vou acompanhar 👍
@gabuzin
@gabuzin 4 года назад
Sempre quando eu paro para pensar sobre os tipos em JavaScript, eu fico imaginando uma novela mexicana onde um diz que é o outro, e o outro na verdade é o outro, etc. xD
@DevSoutinho
@DevSoutinho 4 года назад
ASUHSAHUSHUAHUASUHSAHUASUHSUHA bem isso mesmo
@carlosvitor9718
@carlosvitor9718 4 года назад
Eu Mario faz um vídeo com essa animação: lottiefiles.com/30293-android-dark-theme ai quando clicar muda o modo de light para dark.
@DevSoutinho
@DevSoutinho 4 года назад
Genial!!! Ela encaixa certinho com o modelo de código quee a gente feez aqui, só o fundo ficando todo escuro no final que acho que pode ser trampo de fazer...
@carlosvitor9718
@carlosvitor9718 4 года назад
@@DevSoutinho disponha
@MarcosRCordeiro10
@MarcosRCordeiro10 4 года назад
Já de 20 sec de vídeo. A resposta seria 'array'?
@MarcosRCordeiro10
@MarcosRCordeiro10 4 года назад
Errei kkkkkkkk
@DevSoutinho
@DevSoutinho 4 года назад
sduhdsaahdus acontece, vê ate o final que a dica é boa
@upaulox8490
@upaulox8490 4 года назад
Tbm errei kkkkkk
@ruanvalente7496
@ruanvalente7496 4 года назад
Objeto ;)
@DevSoutinho
@DevSoutinho 4 года назад
será-se? tan tan taaan
@hervallemos
@hervallemos 2 года назад
Qual diferença de obter o tipo com Object.prototype.toString.call(meuObjeto) ao invés de meuObjeto.constructor.name?
@DevSoutinho
@DevSoutinho 2 года назад
Com o constructor name, Vc precisa ter um objeto o .call recebe qualquer tipo de dado
@MarcosRCordeiro10
@MarcosRCordeiro10 4 года назад
Quem riu no YUUUUPPPII 12:19 ????
@DevSoutinho
@DevSoutinho 4 года назад
Aqui em casa até o cachorro asuhsahushusuhahusa
@andreluiz85
@andreluiz85 4 года назад
Object
@DevSoutinho
@DevSoutinho 4 года назад
#serase?
@MuriloHenriqueA
@MuriloHenriqueA 4 года назад
Parando aqui aos 30s pra dizer que é Object, lembro de que tem uma combinação que o pessoal faz de verificação de tipos que faz uma soma ser verdadeira, só que no meio dela tem [], javascript e suas pegadinhas, que não tá errado no contexto da linguagem.
@DevSoutinho
@DevSoutinho 4 года назад
Graaande Murilo! Eu tô ligado dessa aí hahshah o pessoal vive tirando sarro dessas coisas, mas no vídeo eu uso mais como gancho pra mostrar a solução /o
@MuriloHenriqueA
@MuriloHenriqueA 4 года назад
@@DevSoutinho a pesar de ter gostado bastante da solução, confesso que não visualizei uma utilização real dela, talvez pra algum assert não sei.
@MuriloHenriqueA
@MuriloHenriqueA 4 года назад
Estou eu vendo um módulo do fdaciuk no npm (Ajax) e ele usou a solução pra verificar se era um objeto ou não um argumento de uma função. 😂😂
@DevSoutinho
@DevSoutinho 4 года назад
No projeto que eu trabalho hoje a gente tem vários casos que queria garantir qual tipo de dado tava vindo, a gente criou essa funcaozinha e foi usando feliz :)
@DevSoutinho
@DevSoutinho 4 года назад
Graaande daciuk! Aprendi MT coisa com ele tbm /o
@adelmarvilela7314
@adelmarvilela7314 4 года назад
Tô zuadao. Kkkkkk
@DevSoutinho
@DevSoutinho 4 года назад
??? buguei shuahsuahsuaauh 3rr0r
@Marujhin
@Marujhin 3 года назад
Object
@Andrei-xb1pz
@Andrei-xb1pz 3 года назад
Object
@Andrei-xb1pz
@Andrei-xb1pz 3 года назад
Eu sabia que era porque tudo no JS é objeto, mas nao sabia desse metodo sinistro ai nao!! Bacana!! Abrs Mariaoo
Далее
Node.js is a serious thing now… (2023)
8:18
Просмотров 644 тыс.
I tried 8 different Postgres ORMs
9:46
Просмотров 409 тыс.
JavaScript: How It's Made
10:54
Просмотров 879 тыс.
Brutally honest advice for new .NET Web Developers
7:19