2010-05-15 16 views
6

Soy bastante eficiente en jQuery, y lo he implementado en varios proyectos para mi empresa. Sin embargo, me encontré un poco perdido al leer cosas como node.js.¿Ser bueno en jQuery implica ser bueno en JavaScript?

¿Tengo que volver a lo básico y aprender el lenguaje JavaScript o debería seguir con jQuery?

Una cosa más que me gustaría preguntar: ¿La codificación en JavaScript simple aumenta el rendimiento en comparación con la codificación con jQuery? Para mi propia experiencia, la codificación de una combinación pesada y compleja de animación en jQuery siempre parece ocupar una gran cantidad de la memoria de la computadora.

+6

Al menos sabe que hay una diferencia, a diferencia de muchos otros. – Dykam

+0

para su segunda pregunta: es más rápido escribir en javascript simple, si sabe lo que está haciendo. Las bibliotecas intentan optimizar la velocidad, pero siempre habrá un costo de rendimiento de ser abstracto. – galambalazs

+0

Si eres bueno en Javascript, entonces sabes que sería "Ser bueno en jQuery === Ser bueno en Javascript". Al menos esa es la recomendación de libros http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742 –

Respuesta

3

Si solo está interesado en la programación de aplicaciones (sitios web y aplicaciones), entonces jQuery es más que adecuado. Si desea desarrollar un marco de JavaScript o una biblioteca, entonces es necesario tener conocimiento experto del lenguaje de JavaScript.

17

Debe comprender lo que está pasando, hasta cierto punto. No está de más saber lo que hay debajo, pero a veces eso no es óptimo para saber todo tampoco, por ejemplo: ¿es .innerHTML consistente? No completamente, p. <select> en IE. ¿Eso significa que necesitas saber cada inconsistencia? No si le permite a jQuery manejarlo.

La gente dice que hay que entender JavaScript antes de jQuery, permítanme decir Estoy de acuerdo, sin embargo, hay límites a la que, sin embargo, que no necesariamente necesita saber cada capricho y la inconsistencia entre los navegadores, por ejemplo, eso es por qué usamos una capa de abstracción.

Para mí, esto no es diferente de decir que necesita aprender ensamblaje antes de C#, ¿debería saber qué está sucediendo, cómo se hace referencia a la memoria, qué puntero es? Creo que sí, ¿necesitas saber cada detalle? Probablemente no. Nunca progresaríamos si cada nuevo programador pasa por aprender cada capa debajo, es por eso que los teoremas matemáticos se basan en otros que se sabe que son verdaderos, el mismo concepto.

Usted debería poder confiar en su capa de abstracción. Es esto siempre cierto? Desafortunadamente no, pero jQuery hace un muy buen trabajo al ser lo más constante posible y siempre mejorar. Más importante aún, la comunidad hace un buen trabajo para dar a conocer las inconsistencias.


Editar: Déjame salvedad de todo lo anterior diciendo si usted puede aprender lo que hay debajo hacerlo (esto se aplica a la mayoría de cualquier abstracción en mi libro, no sólo JavaScript), que le ayudará a programar mejor y más eficientemente Si sabes lo que sucede bajo las sábanas, puedes aprovecharlo de manera más óptima.

1

jQuery es solo una lista de funciones (muy) útiles, escritas en JavaScript.

Usted está utilizando la biblioteca sin entender qué hay detrás de ella y cómo funcionan las cosas. La mayoría de las veces solo necesitará jQuery para tal vez 20% -40% de su código, y el resto será JavaScript puro, por lo que le recomiendo que conozca los conceptos básicos de .Estos son buenos lugares para empezar con:

1

estoy un poco ambiguo en esto. Conociendo real profundo JavaScript es un gran arte. Siempre estoy en un profundo silencio cuando uno de nuestros expertos residentes en JavaScript se acerca a la mesa. Sin embargo, no todo el mundo necesita ese tipo de conocimiento profundo: si te centras en construir interfaces, conocer bien uno de los marcos puede ser todo lo que necesites, con muy pocos casos extremos.

Por otro lado, sabiendo al menos los conceptos básicos de cómo funciona JavaScript bajo el capó sólo puede ser beneficioso. Si te sientes impulsado a echarle un vistazo, yo diría que lo hagas. No tiene que convertirse en un gurú total en JavaScript fundamental, pero tener una idea básica de cómo se manejan los datos internamente, cómo los eventos son procesados ​​por el navegador, cómo se maneja la memoria, etc. es algo bueno.

0

jQuery es una capa de abstracción para JavaScript, y por esta razón la mayor parte del tiempo que va a hacer todo en jQuery en lugar de prima JavaScript. Sin embargo, siempre es una buena idea tener algún conocimiento de JavaScript al menos para las partes requeridas.

Por esta razón, si ve algún libro de jQuery, la mayoría de ellos tienen un capítulo o índice con respecto a "Conceptos básicos de JavaScript" o "JavaScript para jQuery".

0

No necesariamente, que es como decir como ser buena en Java es el mismo ser bueno en el código de bytes, ya que está utilizando el código de bytes.

4

Es mucho como manzanas y naranjas, en realidad. jQuery es una biblioteca impresionante, pero se centra en las manipulaciones DOM. No ayuda mucho con la codificación general, la herencia de prototipos, los cierres, los tipos de datos y otras cosas importantes con las que tiene que lidiar cuando programa.

Node.js no tienen nada que ver con el DOM, por lo que es mucho ortogonal a jQuery, no es de extrañar que tiene problemas para entenderlo.

Nótese, sin embargo, que el conocimiento de JavaScript no necesariamente significa que será eficiente con cada biblioteca de JavaScript por ahí. Cada biblioteca crea un superconjunto de un idioma, un lenguaje específico de dominio para ayudar con la tarea específica que la biblioteca fue creada para resolver. Siempre tendrá que aprender que DSL es eficiente primero, pero será más fácil entender las partes internas de cualquier biblioteca si conoce bien el JavaScript.

3

¿Ser bueno en jQuery implica ser bueno en JavaScript?

No. I sugiero aprender los conceptos básicos y más.

jQuery es solo una biblioteca. Si bien es productivo, estar bien versado en la funcionalidad que ofrece una biblioteca no es lo mismo que ser bueno en el idioma en el que está escrita esa biblioteca.

No estoy diciendo que usted necesita saber que todas las operaciones bit a bit son converted to signed 32-bit integers in big-endian order, pero sí es necesario saber acerca de conceptos básicos como closures, cómo colocar correctamente los controladores de eventos, y los conceptos básicos de la asíncrono/evento programación orientada.

¿Qué pasaría si cambiara de trabajo a una empresa que utiliza ExtJs en lugar de jQuery? Comprender los conceptos básicos del lenguaje hará que este tipo de transiciones no sean problemáticas.

Otra cosa a tener en cuenta es que para cada biblioteca, siempre hay una tarea que no es compatible. Ser dependiente de una biblioteca para hacer siempre el trabajo pesado eventualmente lo morderá en las partes traseras.

¿La codificación en JavaScript simple aumenta el rendimiento en comparación con la codificación con jQuery?

Las bibliotecas generalmente pretenden ser lo más genéricas posible para el área de uso al que apuntan. Debido a esto, pueden ocurrir ineficiencias en algunos escenarios que de otro modo podrían optimizarse fuera de la biblioteca.

Todo depende de cuán hábil sea usted en JavaScript, la selección/creación/análisis de algoritmos y la programación en general. Cuando comience a preocuparse por ser tan alto como sea posible, realmente debe ser capaz de llegar a los detalles más finos de un idioma. "Ser bueno" en jQuery, o en cualquier biblioteca para el caso, probablemente no lo ayude con esto (a menos que busque bajo el capó e implemente sus técnicas de una manera que sea específica para su situación).