2
respostas

[Dúvida] Duvidas sobre funções e seleção

Boa noite ! tudo bem ?

tenho feito os cursos, e tentado tirar duvidas com a Alura, mas não tem funcionado !

Eu não entendi ainda as diferenças e quando usar as functions :

1- Arrow function - () => {} , function ("elemento") e function anonima.... estou até confuso entre os nomes! Já tentei ler esses exercicios extra que voces deram em algum curso, mas continuo com duvidas na hora de escrever o codigo sozinho.

2- A outra duvida sao as diversas formas de selecionar algum elemento. Qual a diferença se eu uso o querySelector ou getElement id/class ou o que seja ?!

3- E por que utilizar as vezes id e class na mesma tag, sendo que as vezes, só utilizamos uma delas. Tem algo sobre hierarquias e importancias?? vejo que em alguns codigos , possuem até o mesmo nome. Nao me faz sentido as vezes.

enfim. Tenho inumeras dessas duvidas, e não sei como solucionar ou perguntar !!! se vocês puderem me ajudar com relação a isso, eu agradeço! alura nao funciona muito bem pra mim. As vezes, me confude mais!!

obrigado !

2 respostas

Thales,

Diferenças entre tipos de funções

  • Arrow Functio (() => {}):
    • Uma forma mais concisa de escrever funções.

    • Não possui o próprio contexto (this), então herda o this do escopo em que está inserida. Isso é útil quando você não quer que o this mude (como em callbacks).

      const soma = (a, b) => a + b;
      

Função tradicional (function nome() {}):

  • Forma clássica de declarar funções em JavaScript.
  • Cria um escopo próprio e pode alterar o this.
    function soma(a, b) {
      return a + b;
    }
    

Função anônima

  • Pode ser usada tanto em function() quanto em arrow functions.

  • Não tem nome e é geralmente usada quando você precisa passar uma função como argumento para outra.

    const soma = function(a, b) {
      return a + b;
    };
    

Diferenças entre querySelector e getElement

getElementById():

  • Seleciona um único elemento pelo seu id.
  • Retorna apenas um elemento.
    const elemento = document.getElementById('meuId');
    

getElementsByClassName():

  • Seleciona todos os elementos que possuem uma determinada class.
  • Retorna uma coleção de elementos, não um array (mas você pode transformá-lo).
    const elementos = document.getElementsByClassName('minhaClasse');
    

querySelector():

  • Seleciona o primeiro elemento que corresponde ao seletor CSS que você passar (pode ser id, class, ou até combinações complexas).
    const elemento = document.querySelector('#meuId');
    

querySelectorAll():

  • Seleciona todos os elementos que correspondem ao seletor CSS que você passou.

  • Retorna uma NodeList, que é semelhante a um array.

    const elementos = document.querySelectorAll('.minhaClasse');
    

Por que usar id e class na mesma tag?

ID:

  • Deve ser único para cada elemento em uma página. Usamos id quando queremos identificar um elemento específico.

Class:

  • Pode ser usada em múltiplos elementos. Usamos class quando queremos aplicar o mesmo estilo ou comportamento a vários elementos.

Um elemento precisa de um id para ser selecionado de forma única, mas também de uma class para compartilhar estilos ou comportamentos com outros elementos.

Sim, a hierarquia e a especificidade importam quando você usa id e class. O id tem mais "peso" (especificidade) do que uma class em seletores CSS. Por isso, em alguns casos, mesmo que haja um estilo aplicado a uma class, se o id for usado, ele poderá sobrepor esse estilo.

Sugiro praticar esses conceitos com pequenos exemplos e comparar o comportamento para entender melhor. Isso vai ajudar a ganhar mais segurança.

Obrigado, pela boa vontade e paciência em responder isso !Vou tentar fazer algo ou buscar outro jeito de entender melhor e praticar!

Eu tenho seguido os requisitos para inciar cada curso. Mas mesmo assim, é tudo muito confuso pra mim !

Existem um monte nomenclaturas jogadas nessas explicações que nunca foram passadas nos cursos. é tudo "semelhante" "ou quase lá" e nunca é. !!!! não existem definições e metodos ,de como e quando usar cada um. Me parece que cada professor faz de um jeito e a gente que se vire, se for assim, beleza, mas tinha que ter um lugar melhor para tirar duvidas!