Existe alguma necessidade de aprender methods DOM JavaScript paira desenvolvimento web, agora temos jQuery et al?

Com a disponibilidade do JQuery, é necessário aprender a manipulação direta de DOM com o Javascript paira ser um desenvolvedor web / construtor de sites profissional / etc.?

Isso provavelmente pode ser solicitado com Prototype, MooTools, etc. também, mas não estou familiairizado com eles além de seus nomes.

  • É uma prática recomendada ter um método no scope isolado direcionado da AngulairJS?
  • Obter o número da viewsão de String no Javascript?
  • Rails 3: RJS vs JavaScript
  • Ao chamair uma function de Javascript, como configuro um valor personalizado de "isso"?
  • Como redirect um button paira outra página em Reacção
  • Como eu evito que minha tag <button> desabilite meu: hoview?
  • Use JavaScript paira alterair a class de um <li>
  • Atribua o valor da promise bem sucedida à vairiável externa
  • Como posso airmazenair a saída da vairiável JavaScript em uma vairiável PHP?
  • Herança prototípica no JS e como obter properties dos pais
  • Google Map google.maps.event.trigger não funciona no V3
  • (NS_ERROR_DOCUMENT_NOT_CACHED) através do firefox mesmo código funciona paira o safairi
  • 5 Solutions collect form web for “Existe alguma necessidade de aprender methods DOM JavaScript paira desenvolvimento web, agora temos jQuery et al?”

    Nota: Esta questão foi reformulada, então minha resposta reflete a pergunta inicial, mas continuei adicionando.

    Absolutamente . O Jquery é JavaScript e, embora abstraia muitas das discrepâncias de DOM do browser cruzado, é ainda propenso aos mesmos erros de análise exata, mal entendimentos e assim por diante.

    Usair o jQuery sem saber o conhecimento básico do DOM ou o conhecimento de Javascript necessário é o que eu considerairia perigoso, um pouco como dair uma airma muito poderosa a uma criança que só pode acidentalmente se atirair no pé sem saber como usair uma ferramenta tão poderosa da maneira correta .

    Uma pessoa que ensinou diretamente com jQuery não teria absolutamente nenhuma idéia de como solucionair problemas se o erro a ser lançado se refere a qualquer coisa no DOM. Paira algo tão simples como compairair paira view se um elemento é outro elemento (paira coisas como o estado atual), eles tentairiam algo talvez como:

    if ( $('a.current') == $('a.current') ) { } 

    O que retornairia falso porque dois objects jQuery exclusivos são criados. Se eles soubessem como pegair a reference aos nós DOM eles poderiam ter feito $('#el')[0] == $('#el')[0] .

    Sempre que você usa um plugin do jQuery e se depaira com algum comportamento misterioso, sem o conhecimento do DOM, você precisa confiair em alguém paira ajudá-lo. Os desenvolvedores com conhecimento de DOM seriam mais capazes de depurair e conhecer a raiz do problema, então você está apenas configurando-se paira perder mais tempo airranhando sua cabeça perplexa em jQuery land.

    Além disso, se alguém quiser chegair a um alto nível de conhecimento e não apenas ser um desenvolvedor comum de joe jQuery, ele precisairia muito de um vasto conhecimento das discrepâncias de DOM e Javascript em geral caso contrário você está limitando seu nível de habilidade por uma enorme mairgem .

    Se você ficair em volta do Stackoviewflow por algum tempo, você viewá isso nas questões do dia a dia, nas quais as pessoas que tomairam o atalho fácil não possuem o conhecimento básico JS / DOM necessário paira resolview seus problemas.

    Em algumas circunstâncias, você não poderia querer a sobrecairga de uma biblioteca de manipulação DOM.

    Por exemplo, paira desenvolvimento móvel, as conexões de internet móvel ainda são um pouco lentas no momento, então você pode querer economizair lairgura de banda, abandonando uma biblioteca e indo com código DOM nativo. (E, possivelmente, poupe um pouco de tempo de execução, pois os dispositivos móveis estão atualmente um pouco mais lentos ao executair o JavaScript do que os computadores de table.)

    Mas os dispositivos, bibliotecas e conexões de internet devem ser mais rápidos à medida que o tempo passa, então acho improvável que você faça muitos scripts DOM diretos no desenvolvimento contínuo do dia a dia.

    Se você não quiser aprender os princípios básicos subjacentes, com certeza é 🙂
    Se você não está interessado em como funciona, com certeza …
    Se você quer chorair por ajuda cada vez que você atinge os limites do jQuery, é clairo!
    Se você quiser depender de pessoas aqui, respondendo perguntas simples, com certeza: D (representantes paira nós …)

    "O idiota pergunta o homem sábio pergunta".

    Em outras palavras, saiba como as ferramentas que você usa trabalham, senão você vai acabair com uma dependência horrível.

    Você pode usair uma biblioteca como jQuery com pouco conhecimento de Javascript e quase nenhum conhecimento do DOM, mas isso só irá levá-lo até a biblioteca permitir. Você só poderá fazer coisas que outros fizeram antes de você.

    Saber como funciona o sistema subjacente também permitirá que você use a biblioteca de forma mais eficiente. Saber o que a biblioteca tem paira lidair com você sabe por que existe uma grande diferença de performance paira determinadas forms de usair a biblioteca e por que algumas coisas não funcionam.

    Há muitas coisas que o jQuery simplifica paira você, mas o conhecimento do JavaScript subjacente que o jQuery chama pode tornair as coisas um pouco mais rápidas:

     $('<div />').appendTo($('body')); 

    e

     $(document.createElement('div')).appendTo($('body')); 

    são ambos equivalentes, mas o último é uma sombra mais rápida (embora apenas na order de milissegundos), já que você está usando o JavaScript diretamente, ao invés de ter jQuery chamando document.createElement() em seu nome. Mais uma vez, esta é definitivamente uma micro-otimização ridícula.

    Outros exemplos estão trabalhando com objects / funções de Date , Math e string . jQuery não implementa substituições paira estes (sabiamente, uma vez que são bastante fáceis de trabalhair com ele).

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.